NO參數有返回從REST Web服務創建的字符串的問題數據:返回從REST Web服務與URI
[WebInvoke(Method = "PUT", UriTemplate = "/Filters",
BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
string CreateFilter(Filter InputFilter);
正如你所看到的網址沒有任何參數,所有的數據傳遞通過流到URL。返回的字符串基於發送到URL的數據。
當我使用.net測試應用程序時,響應是正確的(基於輸入)。
當我使用Java servlet時,服務在調用HttpURLRequest的GetInputStream()時返回400錯誤。
看來Java servlet對URL進行第二次調用,並期待響應(由於它基於輸入而不存在)。我通過改變返回到一個常量來測試這個(因此不是基於輸入)。當我這樣做時,我的GetInputStream()方法起作用。
servlet代碼:
OutputStream out = connection.getOutputStream();
out.write(jsonValue.getBytes());
out.close();
String response = "";
BufferedReader readResponse =
new BufferedReader(new InputStreamReader(connection.getInputStream()));
response = readResponse.readLine();
return response;
注:其他方法使用相同的代碼,在其參數的URL,並返回正確的數據(添加的證據表明,該servlet正在到URL第二個電話我的問題方法。)out.close()不是問題。