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()不是问题。