错误请求:从Android客户端向.NET REST服务发送字符串

时间:2012-05-22 03:40:17

标签: android .net rest

我正在尝试从我的Android客户端发送一个json字符串(Android 4.03) 到我的.net Rest服务(WCF)。我得到了“错误请求”作为回应。我有这个服务的.NET测试程序,它工作正常。

服务器端代码:

[WebInvoke(UriTemplate = "submit", Method = "POST", RequestFormat = WebMessageFormat.Json)]
public bool SubmitPackage(string instance)
{      

 log.WriteWarning("Submit");
 return true;
}

我的WCF配置

<standardEndpoints>
    <webHttpEndpoint>
      <standardEndpoint name="" maxReceivedMessageSize="327680" helpEnabled="true" automaticFormatSelectionEnabled="false" defaultOutgoingResponseFormat="Json" transferMode="Buffered" />
    </webHttpEndpoint>
</standardEndpoints>

我在Android客户端上的代码

HttpPost request2 = new HttpPost(URL_Submit);
request2.setHeader("content-type", "application/json");

JSONStringer json1 = new JSONStringer().object().key("instance")
                .value("hello world").endObject();


StringEntity entity1 = new StringEntity(json1.toString());
entity1.setContentType("application/json;charset=UTF-8");
entity1.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
                "application/json;charset=UTF-8"));

request2.setEntity(entity1);
// Send request to WCF service
DefaultHttpClient httpClient = new DefaultHttpClient();
String response1 = httpClient.execute(request2)

1 个答案:

答案 0 :(得分:0)

您的WCF服务是否在IIS中托管?打开失败的请求记录,并查看结果。

还可以使用fiddler查看正在发送的流量。您可以配置fiddler在服务器上运行。它通常在客户端上运行,但您无法在Android上运行它。

配置fiddler以在服务器上运行

http://www.fiddler2.com/fiddler/help/reverseproxy.asp

此外,我经常把它放在我的web.config中,

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
        <listeners>
          <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="c:\logs\Traces.svclog" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>

记录与请求相关的错误。这可以打开并解析请求。