나는 입력 매개 변수로서 커스텀 클래스를받는 'wcf'rest 서비스를 가지고 있습니다. 안드로이드 플랫폼을 통해이 클래스 객체 데이터를 보내려고합니다. 나는 httpUrlConnection
을 사용했다. 나는 항상 응답 코드 500을 받는다. 그러나 서비스는 윈도우 폼 애플리케이션에서 올바르게 작동했다. 안드로이드에 내 코드는 여기에 있습니다 :android에서 wcf로 json을 보내십시오.
HttpURLConnection urlConnection = null;
String jsonString = "";
JSONObject jsonObject = new JSONObject();
JSONObject jsonObject2 = new JSONObject();
try {
jsonObject.put("A","rtrt");
jsonObject2.put("c",jsonObject);
} catch (JSONException e) {
e.printStackTrace();
}
try{
URL url = new URL("http://.../Service1.svc/GetTestData");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("ContentType","applicaiton/json");
urlConnection.setUseCaches(false);
urlConnection.connect();
OutputStream outputStream = new BufferedOutputStream(urlConnection.getOutputStream());
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "utf-8"));
writer.write(jsonObject2.toString());
writer.flush();
writer.close();
outputStream.close();
int statusCode = urlConnection.getResponseCode();
// Log.d("TRAFFIC", "err: " + urlConnection.getErrorStream().toString());
올바르지 않습니다. 바인딩을 변경하고 webhttpbinding으로 설정하면 Wcf가 지원됩니다. –
나는 안드로이드 개발자뿐만 아니라 .NET입니다. 오래 전이 문제에 직면 해 있으며 Ksoap2가 해결책입니다. –