イメージを WCF サービスにアップロードできる Android プログラムがあります。WCF サービスは、イメージ名、フォルダー名、およびイメージの base64 エンコードを含む JSON オブジェクトを受け入れます。
そのサービスをテストするためにフィドラーを使用します。オンライン サービスから画像をエンコードし、オブジェクトに入れました。次に、POST リクエストを作成しました。次に、WCF サービスが画像を正常にアップロードしました。
しかし、Android HTTP クライアントを使用して同じことを行うと、WCF は要求を受け入れますが、画像を認識しません。
ここに私のAndroidコードがあります:
try {
HttpPost httpPost=new HttpPost(this.remoteBasePath);
JSONObject obj = new JSONObject();
obj.put(FILE_NAME, fileName);
obj.put(FILE_STREAM,fileStream);
obj.put(FOLDER_NAME, remoteFolder);
httpPost.setHeader("Content-type", "application/json; charset=utf-8");
httpPost.setEntity(new StringEntity(obj.toString()));
httpPost.setHeader(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
httpResponse=httpClient.execute(httpPost);
if(httpResponse!=null){
TLLog.d(TAG,"StatusCode : "+ httpResponse.getStatusLine().getStatusCode());
if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
InputStream instream = httpResponse.getEntity().getContent();
BufferedReader r = new BufferedReader(
new InputStreamReader(instream));
StringBuilder total = new StringBuilder();
String line;
while ((line = r.readLine()) != null) {
total.append(line);
}
instream.close();
String result = total.toString();
TLLog.d(TAG,"Image posting result : "+ result);
return true;
}
}
} catch (ClientProtocolException e) {
TLLog.e(TAG, e.getStackTrace().toString());
} catch (IOException e) {
TLLog.e(TAG, e.getStackTrace().toString());
} catch (JSONException e) {
e.printStackTrace();
}
問題がわかりません。