我对 IIS 7.5 服务器进行了 RESTful POST,但它看不到正文:
HttpClient httpclient = new DefaultHttpClient();
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String response = "";
HttpPost httppost = new HttpPost(request.getHost());
for(@SuppressWarnings("rawtypes") Header header : request.getHeaders()){
httppost.setHeader(header.getKey(), header.getValue());
}
if(requestBody.length()>0){
// append the body data to the post
StringBuilder sb = new StringBuilder();
sb.append(requestBody);
StringEntity stringentity = new StringEntity(sb.toString(), HTTP.UTF_8);
httppost.setEntity(stringentity);
}
// hit the server
response = httpclient.execute(httppost, responseHandler);
// clean up
httppost = null;
return response;
它可以看到标题,但永远无法看到正文实体。
requestBody
只是一个简单的字符串。
使用完全相同的代码、正文和标头并将此 POST 指向另一个运行 IIS 6.0 或 Apache Tomcat 7 的服务器,两者都可以毫无问题地查看和提取标头和正文。
IIS 7.5 在寻找什么它看不到主体?我需要以不同的方式制作帖子吗?
参考:
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HTTP;
相关帖子: 我在 IIS 方面工作的同事在 MSDN 上发布了他的 WCF 代码。