3

我对 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 代码。

4

0 回答 0