我对 Android 开发还很陌生。这是我的问题:
我有这个端点:http://bdzservice.apphb.com/api/Image
接受 POST 请求 请求正文是一个字符串,例如:
/SearchServlet?action=showMap&id1=25&date=09/12/2013&st1=5216000&st2=5229030
无效示例:{"/SearchServlet?action=showMap&id1=25&date=09/12/2013&st1=5216000&st2=5229030"}
无效示例 2:{mapHref : "/SearchServlet?action=showMap&id1=25&date=09/12/2013&st1=5216000&st2=5229030"}
无效示例3: {"mapHref": "/SearchServlet?action=showMap&id1=25&date=09/12/2013&st1=5216000&st2=5229030"}
这是我到目前为止编写的代码:
HttpClient client = new DefaultHttpClient();
String message;
HttpPost httpPost = new HttpPost("http://bdzservice.apphb.com/api/Image");
try
{
message = url;
StringEntity se = new StringEntity(message, "UTF8");
se.setContentType("application/json");
httpPost.setEntity(se);
httpPost.setHeader("Content-type", "application/json");
HttpResponse resp = client.execute(httpPost);
if (resp != null)
{
if (resp.getStatusLine().getStatusCode() == 204)
result = true;
}
Log.d("Status line", "" + resp.getStatusLine().getStatusCode());
}
尝试发布数据时,我总是收到错误,但是当我手动(通过 REST 客户端)发布数据时,我得到了正常结果。
有人可以帮我解决这个问题吗?
编辑
This is the endpoint ,它是用C#(Web Api)编写的
编辑2:尝试修改服务以返回收到的正文(请参阅网址中的注释),但它返回 null,所以问题是它没有获取正文(或只是读取它)错误)
请您参考如下方法:
我在这里为 .NET Standard 创建了一个执行 POST 和 PUT 操作的库。我已经在Android上彻底测试过了。有快速入门示例可以快速上手。示例中只有一个PUT,但是原理应该是一样的:
https://bitbucket.org/MelbourneDeveloper/restclient-.net/overview