我正在为我的Android手机构建一个小型应用程序,以使用非常基本的REST界面将短信转发到网络服务器。
我正在使用android 4.0.3 SDK。我使用Django和Django
restframework包在python中开发了Web服务。设置完全是开箱即用的。基本上有一个端点可以接收包含消息信息(发送者,正文,日期)的JSON对象的POST。我已经使用cURL通过以下命令测试了该服务:
curl -X POST -H 'Content-Type: application/json' --data '{"sender":"+xxxxxxxx", "body": "test", "send_date":"2011-03-20 16:32:02"}' http://[...]/messages.json
一切正常,我得到了预期的响应:
{"body": "test", "send_date": "2011-03-20T16:32:02", "id": 25, "sender": "+xxxxxxxxxx"}
现在,我设置了android应用。这是一个简单的BroadcastReceiver子类,包括一个私有的AsyncTask类:
private class httpPost extends AsyncTask<String, Void, JSONObject> {
protected JSONObject doInBackground(String... args) {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpParams myParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(myParams, 10000);
HttpConnectionParams.setSoTimeout(myParams, 10000);
String url = args[0];
String json=args[1];
JSONObject JSONResponse = null;
InputStream contentStream = null;
String resultString = "";
try {
HttpPost httppost = new HttpPost(url);
httppost.setHeader("Content-Type", "application/json");
httppost.setHeader("Accept", "application/json");
StringEntity se = new StringEntity(json);
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
httppost.setEntity(se);
for (int i=0;i<httppost.getAllHeaders().length;i++) {
Log.v("set header", httppost.getAllHeaders()[i].getValue());
}
HttpResponse response = httpclient.execute(httppost);
// Do some checks to make sure that the request was processed properly
Header[] headers = response.getAllHeaders();
HttpEntity entity = response.getEntity();
contentStream = entity.getContent();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(contentStream,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
contentStream.close();
resultString = sb.toString();
}catch(Exception e){
e.printStackTrace();
}
Log.v("log", resultString);
return new JSONObject();
}
}
如您所见,我刚刚开始熟悉Java和android SDK,所以请多多包涵。实际上,此设置在我构建的用于将JSON字符串发送到Neo4J
Web服务的另一个应用程序中可以正常工作。
问题是,当我通过Android将消息发布到我的Web服务时,有时内容类型从’application / json’更改为’application /
json,application / json’。标头循环中的日志条目仍然为每个标头输出正确的值,但是,Web服务返回以下错误消息:
{"error": "Unsupported media type in request 'application/json, application/json'."}
我很困惑,欢迎任何帮助。
更改此:
StringEntity se = new StringEntity(json);
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
httppost.setEntity(se);
仅此:
httppost.setEntity(new StringEntity(json.toString(), HTTP.UTF_8));
我有这个代码: 当我运行它时,我在控制台上得到以下打印: 因此,它返回415个不受支持的媒体类型错误代码。 我在StackOverflow上发现,它可能是由上下文类型中的charset=UTF-8引起的。所以我的问题是,我如何编辑这个字段来满足我的需求(删除charset=UTF-8)。链接 如何更改该内容类型。由于我不熟悉HTTP协议,请详细说明。
我正在为我的Android手机构建一个小应用程序,使用非常基本的REST界面将短信转发到网络服务器。 我正在使用android 4.0.3 SDK。我使用Django和Django restframework包在python中开发了webservice。设置完全是开箱即用的。基本上只有一个endpoint接收包含消息信息(发件人、正文、日期)的JSON对象的帖子。我使用cURL和以下命令测试了该服
我有一本书。NETCore2.0WebAPI应用程序,其中我将“Flurl.Http”(版本2.1.0)NuGet包添加到我的项目中。 我正在尝试使用Flurl对一个VisualStudioTeamServices(VSTS)APIendpoint进行简单的RESTAPI调用。 但是,我正在调用的特定VSTS api终结点要求将Content-Type设置为“应用程序/json-补丁json”,而
问题内容: 我的JTable有问题。我的JTable显示数据库的内容。一个数据库表具有名称类别。每个类别都显示在JComboBox中。如果单击类别,则应该更新表内容。 这是我的代码的简短摘要,因此可以更轻松地为我提供帮助。该代码应可运行: (TestClass-主要) (如果需要,则为TestTableModel-AbstractTableModel(您需要它来执行代码!) 使用此短代码,如果更改
问题内容: 我有一些JavaScript的简单HTML代码,看起来像: 我只是希望能够通过选择“ A”或“ B”单选按钮之一来更改div的内容(它是内部html),但是div#content没有javascript属性“ value”,所以我问它如何做完了。 问题答案: 假设您没有使用jQuery或其他使您更轻松地进行此类操作的库,则只需使用元素的innerHTML属性即可。
问题内容: 请原谅我,但我可能不熟悉正确询问此问题所需的所有术语。 我正在使用jax-rs 的实现在Java中使用一个相当简单的REST Web服务。方法头是这样的: MessageContext在哪里。 我要完成的两件事似乎无法弄清: 如果满足某些条件(例如,出现错误),则更改内容类型 更改响应的状态码 我尝试通过通过MessageContext访问响应来更改响应: 但是这些变化与发送的响应无关