日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android studio wcf,将图像从android studio上传到Wcf Service

發布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android studio wcf,将图像从android studio上传到Wcf Service 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我將圖像從android studio發送到wcf服務兩個代碼都是正確的,當我點擊sendToServer按鈕時,應用程序崩潰了。我不知道我的代碼有什么問題。

這是MainActivity.java的代碼

public class MainActivity extends AppCompatActivity

{

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

StrictMode.ThreadPolicy policy = new

StrictMode.ThreadPolicy.Builder().permitAll().build();

StrictMode.setThreadPolicy(policy);

if (savedInstanceState == null) {

getSupportFragmentManager().beginTransaction()

.add(R.id.container, new PlaceholderFragment()).commit();

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.menu, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

/**

* A placeholder fragment containing a simple view.

*/

public static class PlaceholderFragment extends Fragment {

private static final int CAMERA_REQUEST = 1888;

private int PICK_IMAGE_REQUEST = 1;

public PlaceholderFragment() {

}

private final static String SERVICE_URI = "http://localhost:24895/WcfAndroidImageService/WcfAndroidImageService.svc";

ImageView imageView = null;

byte[] photoasbytearray = null;

Photo ph = null;

@Override

public void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {

Bitmap photo = (Bitmap) data.getExtras().get("data");

imageView.setImageBitmap(photo);

//getting photo as byte array

ByteArrayOutputStream stream = new ByteArrayOutputStream();

photo.compress(Bitmap.CompressFormat.JPEG, 100,stream);

photoasbytearray = stream.toByteArray();

//give a name of the image here as date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HHmm");

String currentDateandTime = sdf.format(new Date());

ph = new Photo();

String encodedImage = Base64.encodeToString(photoasbytearray,Base64.DEFAULT);

ph.photoasBase64=encodedImage;

ph.photoName= currentDateandTime+".png";

}

}

private void SendToServer(Photo ph2) throws UnsupportedEncodingException {

// TODO Auto-generated method stub

HttpPost httpPost = new HttpPost(SERVICE_URI+"LoadPhoto");

httpPost.setHeader("Content-Type", "application/json; charset=UTF-8");

HttpClient httpClient = new DefaultHttpClient(getHttpParameterObj(17000,17000));

// Building the JSON object.

com.google.gson.Gson gson = new GsonBuilder().disableHtmlEscaping().create();

String json = gson.toJson(ph2);

StringEntity entity = new StringEntity(json,"UTF_8");

Log.d("WebInvoke", "data : " + json);

httpPost.setEntity(entity);

// Making the call.

HttpResponse response = null;

try

{

response = httpClient.execute(httpPost);

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

//e.printStackTrace();

Log.d("Exception",e.toString());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// Getting data from the response to see if it was a success.

BufferedReader reader = null;

try {

reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()

));

} catch (IllegalStateException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

Log.d("IO_Exception",e.toString());

}

String jsonResultStr = null;

try {

jsonResultStr = reader.readLine();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Log.d("WebInvoke", "donnen deger : " + jsonResultStr);

}

private HttpParams getHttpParameterObj(int timeOutConnection, int timeOutSocket)

{

HttpParams httpParameters = new BasicHttpParams();

// Set the timeout in milliseconds until a connection is established.

HttpConnectionParams.setConnectionTimeout(httpParameters, timeOutConnection);

// Set the default socket timeout (SO_TIMEOUT)

// in milliseconds which is the timeout for waiting for data.

HttpConnectionParams.setSoTimeout(httpParameters, timeOutSocket);

return httpParameters;

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.activity_photo, container,

false);

imageView = (ImageView)rootView.findViewById(R.id.imageView1);

Button btnOpenCam = (Button) rootView.findViewById(R.id.btnOpenCam);

Button btnSendServer = (Button) rootView.findViewById(R.id.btnSendServer);

Button btnOpenImage = (Button)rootView.findViewById(R.id.openImage);

btnOpenCam.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// Start camera activity here

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(cameraIntent, CAMERA_REQUEST);

}

});

btnOpenImage.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent();

// Show only images, no videos or anything else

intent.setType("image/*");

intent.setAction(Intent.ACTION_GET_CONTENT);

// Always show the chooser (if there are multiple options available)

startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);

}

});

btnSendServer.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

try {

SendToServer(ph);

// Toast.makeText(getActivity(),"Image Sent to Server!", Toast.LENGTH_SHORT).show();

//Toast.makeText(getActivity(),"Server got the image!", Toast.LENGTH_SHORT).show();

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

return rootView;

}

}

}

這是Photo.java

package com.example.haier.leafclassification;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

public class Photo {

public String photoasBase64;

public String photoName ;

}

在服務器端,這里是IWcfAndroidImageService.cs文件

using System;

using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.ServiceModel.Web;

using System.Text;

namespace WcfAndroidPhotoServis

{

[ServiceContract]

public interface IWcfAndroidImageService

{

[OperationContract]

[WebInvoke(Method = "POST",

RequestFormat = WebMessageFormat.Json,

ResponseFormat = WebMessageFormat.Json,

// BodyStyle = WebMessageBodyStyle.Wrapped,

UriTemplate = "LoadPhoto")]

string LoadPhoto(Photo photo);

}

}

這是WcfAndroidImageService.svc文件代碼

using System;

using System.Collections.Generic;

using System.Drawing;

using System.IO;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.Text;

using WcfAndroidPhotoServis.Helper;

namespace WcfAndroidPhotoServis

{

public class WcfAndroidImageService : IWcfAndroidImageService

{

public string LoadPhoto(Photo photo)

{

//get photofolder path

string photofolderName = "LoadedPhotos";

string photopath = "";

photopath = System.Web.Hosting.HostingEnvironment.MapPath("~/"+photofolderName);

//convert byte array to image

Image _photo = ImageHelper.Base64ToImage(photo.photoasBase64);

photopath = photopath + "/" + photo.photoName;

//save photo to folder

_photo.Save(photopath);

//chech if photo saved correctlly into folder

bool result = File.Exists(photopath);

// string result = "Server got the image!";

return result.ToString();

}

}

[DataContract]

public class Photo

{

//device id

[DataMember]

public string photoasBase64 { get; set; }

[DataMember]

public string photoName { get; set; }

}

}

這是我在主要活動日志中收到的消息

W / System.err:org.apache.http.conn.HttpHostConnectException:拒絕與http://localhost:24895的連接

以下是主要活動日志顯示的三個行號

java.lang.NullPointerException: Attempt to invoke interface method 'org.apache.http.HttpEntity org.apache.http.HttpResponse.getEntity()' on a null object reference

at com.example.haier.leafclassification.MainActivity$PlaceholderFragment.SendToServer(MainActivity.java:378)

at com.example.haier.leafclassification.MainActivity$PlaceholderFragment.access$100(MainActivity.java:293)

at com.example.haier.leafclassification.MainActivity$PlaceholderFragment$3.onClick(MainActivity.java:463)

并且這些行具有以下代碼

Line 378: reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()

Line 293: public static class PlaceholderFragment extends Fragment {

Line 463: SendToServer(ph);

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的android studio wcf,将图像从android studio上传到Wcf Service的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美色图日韩 | 久久综合av| 香蕉视频性 | 精品视频一二三区 | 国产成人超碰人人澡人人澡 | 成人污在线 | 国产在线播 | 亚洲午夜精品久久 | 国产精品日日夜夜 | 欧美一区免费观看 | 自拍偷拍视频网 | 在线无码va中文字幕无码 | 一区二区日韩视频 | 精品熟女一区二区三区 | 国产福利免费看 | 性猛交富婆╳xxx乱大交麻豆 | 欧美黑人疯狂性受xxxxx野外 | 天天看片中文字幕 | 成人漫画网站 | 哪里可以看免费毛片 | 香蕉视频成人在线观看 | 亚洲中文无码久久 | 香蕉网在线播放 | 成年人在线视频观看 | 能在线看的av | 成人91看片 | 国产毛片毛片毛片毛片毛片 | 蜜桃av色偷偷av老熟女 | 夜夜嗨av一区二区三区 | 五月激情丁香婷婷 | 成人h动漫精品一区二区无码 | 日韩精品在线第一页 | 国产精品一二三四五区 | 日韩一区不卡视频 | 欧美做受高潮中文字幕 | 特黄一区 | 天堂成人在线视频 | 无码国产色欲xxxxx视频 | 大战熟女丰满人妻av | 久久婷婷热 | 黑人操白妞 | 最新中文字幕在线 | 国产精品日韩专区 | 丁香婷婷深情五月亚洲 | 黑料网在线观看 | 动漫美女被吸乳奶动漫视频 | 黄色片网站免费在线观看 | 捆绑调教在线观看 | 日韩一二三四五区 | 久久蜜臀精品av | av字幕在线 | 久热这里只有 | 国产乱仑 | 老女人毛片 | 欧美日韩激情在线一区二区三区 | 成年人视频在线观看免费 | 国产吞精囗交久久久 | 男女扒开双腿猛进入爽爽免费 | av站 | 五月婷网站 | 在线免费观看高清视频 | 午夜精品在线视频 | 一级片视频免费看 | 午夜一级在线 | 欧美成人精品欧美一级 | 美妇av| 高级家教课程在线观看 | 日本久久综合网 | 丝瓜av| 成年人国产精品 | 思思久久99| www欧美在线| 日韩国产欧美 | 亚洲精品亚洲人成人网 | 欧产日产国产精品98 | 日色网站 | 精品盗摄一区二区三区 | 日美韩一区二区三区 | 日韩影视在线 | 丝袜操 | 国产91视频播放 | 亚洲av无码国产精品麻豆天美 | 另类视频在线观看 | 国产对白羞辱绿帽vk | 99久久99久久免费精品蜜臀 | 日韩在线视频在线 | 乱老熟女一区二区三区 | 91在线精品视频 | 熟妇人妻一区二区三区四区 | 黄色的视频网站 | 久久国产精品久久久久 | 精品日韩av | 综合av第一页 | 欧美日韩乱国产 | 一区二区三区四区免费观看 | 日韩片在线 | 成人午夜精品一区二区三区 | 熟妇人妻av无码一区二区三区 | 欧美熟妇精品一区二区 |