我在Android上遇到了WebService問題。我遇到了400錯誤,但ErrorStream中沒有任何信息。在Android中發佈WebService請求
我想要做的是使用JSON的WCF Web服務上的POST請求。
我必須補充說我有includeExceptionDetailInFaults
已啓用我的服務。上一次我得到400錯誤,這是因爲我沒有定義RequestProperty
。現在我在流中沒有出現任何錯誤。
下面是代碼:
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
// In my last error I had not included these lines. Maybe they are still wrong?
urlConnection.setRequestProperty("Content-Type", "application/json");
urlConnection.setRequestProperty("Accept", "application/json");
urlConnection.setRequestMethod("POST");
urlConnection.setDoOutput(true);
urlConnection.setChunkedStreamingMode(0);
OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(out);
outputStreamWriter.write(jsonObject.toString(), 0, jsonObject.length());
outputStreamWriter.flush();
//outputStreamWriter.close();
int code = urlConnection.getResponseCode();
System.out.println(code);
if(code == 400) {
BufferedInputStream errorStream = new BufferedInputStream(urlConnection.getErrorStream());
InputStreamReader errorStreamReader = new InputStreamReader(errorStream);
BufferedReader bufferedReader = new BufferedReader(errorStreamReader);
StringBuilder builder = new StringBuilder();
String aux = "";
while ((aux = bufferedReader.readLine()) != null) {
builder.append(aux);
}
String output = builder.toString(); // The output is empty.
System.out.print(output);
}
我會看它,並給你答覆。 – 2014-09-03 07:57:20
您是否有一個如何實施帶改造的POST請求的示例?我只能找到GET請求。 – 2014-09-03 08:06:09
同時檢查同一Square團隊的OkHTTP庫(用於網絡連接)。它可以單獨使用或與改造或畢加索圖書館輕鬆集成。它處理默認的Android網絡客戶端之間的差異,並且還具有如下特性:響應緩存,GZIP壓縮,連接重用(池化)等。 – dasar 2014-09-03 08:08:09