-
为什么使用HttpClient发送json总是返回400?15
android手机端需要发送一个json格式的数据,返回的也是json数据。
现在问题出现在,我无论怎么写都返回400,Bad Request。
问题出在哪儿呢?且看代码,感觉该设置的都设置了。/** * POST获取服务端数据,发送的是json格式的数据 * @param urlString * @param json 需要发送的json数据 * @return * @throws ClientProtocolException * @throws IOException */ public String getDataFromServerByPostForJson(String urlString,JSONObject json) throws ClientProtocolException, IOException{ String strResult = null; HttpClient client = new DefaultHttpClient(); StringEntity entity = new StringEntity(json.toString()); entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded"));//"application/octet-stream" entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_ENCODING,HTTP.UTF_8)); HttpPost post = new HttpPost(urlString); post.setHeader("Accept", "application/json"); post.setHeader("Content-Type", "application/json"); post.setEntity(entity); HttpResponse response = client.execute(post); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { strResult = EntityUtils.toString(response.getEntity(), HTTP.UTF_8); }else{ post.abort(); strResult = "Error Response code " + response.getStatusLine().getStatusCode() + " :" + response.getStatusLine().toString(); Log.i("tag", strResult); return null; } return strResult; }
有碰到类似的朋友吗?2013年10月28日 11:06
5个答案 按时间排序 按投票排序
-
采纳的答案
发送请求的参数与后台 处理程序 的要求不匹配。
特别是用 spring mvc时,容易出现该问题。
比如
@RequestMapping("/api/ddd")
public @ResponseBody JsonResult
doDummy(@RequestParam("tid')Long id) {
.....
return result;
}
如果发送的url是
http://www.foo.com/api/ddd
没有参数,则400
发送请求
http://www.foo.com/api/ddd?id=2323
因为实际要求的参数是tid不是id,还是会出400错2013年10月28日 22:22
-
你的urlString是怎么样的?android模拟器桥接的局域网访问主机不是机器本身的局域网,我记得好像是10.0.2.2访问主机的
2013年10月29日 10:06
-
是不是因为 entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded"));//"application/octet-stream"与下面的post.setHeader("Content-Type", "application/json"); 有冲突问题。都改成application/json试一下。
2013年10月28日 21:44
相关推荐
在本示例中,HttpClient被用来从服务器获取数据,这些数据通常是JSON格式,这是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析和生成。 首先,我们需要了解如何使用Android的HttpClient。在...
如果需要发送JSON数据,我们可以使用StringEntity: ```java HttpPost httpPost = new HttpPost("http://example.com"); httpPost.setHeader("Accept", "application/json"); httpPost.setHeader("Content-type", ...
本篇文章将深入探讨如何使用HTTPClient发送POST请求,以及相关的项目结构和实现细节。 首先,"post-demo"项目定义了我们需要调用的接口。通常,这会是一个Web服务,可能是一个RESTful API,提供特定的功能或数据。...
### 使用HttpClient发送POST请求,并获取响应内容 #### 一、简介 在现代软件开发中,尤其是在Web应用领域,客户端与服务器之间的通信是非常重要的环节。Java作为一种广泛应用的编程语言,提供了多种方式来实现这一...
本教程将专注于使用Apache HttpClient库获取网络数据,然后使用Google的Gson库解析JSON格式的数据。这是一个基础但重要的技能,对于任何想要与服务器进行交互的开发者来说都是必备的。 首先,我们需要了解`...
在压缩包中的"使用HttpClient发送json必须的jar包"可能包含了处理JSON数据所必需的库,如`gson-x.x.x.jar`或`jackson-core-x.x.x.jar`、`jackson-databind-x.x.x.jar`等。 在"使用说明.txt"中,通常会详细阐述如何...
以下是如何使用`HttpClient`发送JSON的示例: ```java import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; ...
3. **构建POST请求并发送JSON数据** 4. **解析返回的JSON数据** ### 1. 理解HTTP请求与响应的基础概念 HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,是互联网应用的基础之一。在客户端...
例如,在一个API请求中,你可以先使用`commons-httpclient`发送请求并获取JSON格式的响应,然后利用`org.json`库解析这些响应数据,提取出你需要的信息。这样,你可以实现客户端与服务器之间的有效数据交互。 总的...
在Android开发中,将通过HTTPClient获取到的JSON数据展示到ListView是一种常见的需求。这个过程涉及到网络请求、JSON解析以及UI绑定等多个环节。下面将详细解释这些知识点。 首先,`HTTPClient`是Apache HttpClient...
在本文中,我们将深入探讨如何使用Ionic、Angular和Express框架构建一个完整的前后端交互系统,特别是在客户端使用HttpClient发送GET请求获取数据并在页面上显示。这是一个常见的应用场景,对于开发跨平台移动应用...
在Android开发中,HttpClient是一个常用...通过以上知识点的学习,你可以理解如何使用HttpClient进行网络请求,以及处理返回的JSON数据。但请注意,对于新的Android项目,最好遵循最新的最佳实践,使用更现代的网络库。
在"HttpClientUtil2-发送json返回json测试通过.java"这个文件中,我们可以预见到这是一个实现了发送JSON数据并接收JSON响应的示例。以下是一些关键知识点: 1. **Apache HttpClient 库**:HttpClient 是 Apache ...
在本文中,我们将深入探讨如何使用HttpClient发送POST请求,以及处理JSON参数和其他关键点。 1. 创建HttpClient实例: HttpClient的初始化通常涉及构建一个HttpClientBuilder对象,然后调用其build()方法来创建...
4. JSON解析:使用ArduinoJson库的`deserializeJson()`方法解析JSON字符串,将其转换为JsonDocument对象。然后,可以使用`JsonDocument`的成员访问器方法获取并处理JSON数据中的各个字段。 5. 清理与关闭:完成数据...
如果需要读取服务器返回的数据,可以使用`EntityUtils.toString(result.getEntity())`将响应实体转化为字符串。在示例中,如果`noNeedResponse`为`false`,则返回这个字符串,否则返回`null`。 在处理过程中,可能...
这个实例主要涉及了如何使用HttpClient发送POST请求,同时处理普通参数和JSON格式参数,以及解析响应内容。下面我们将深入探讨这些知识点。 一、HttpClient基础 HttpClient库提供了一套完整的API,允许开发者构建...
总结起来,这个Android示例源码展示了如何使用HttpClient获取JSON数据,解析这些数据,转换成Java对象,然后在ListView中展示。它涵盖了网络请求、JSON解析、UI更新和异步处理等多个关键知识点,是学习Android网络...
在这个场景中,我们将关注于使用Winform应用程序通过HTTP POST方法发送JSON数据,并接收服务器返回的JSON结果。Winform是.NET Framework中的一个用户界面库,用于构建桌面应用程序。 首先,我们需要理解HTTP POST...
为了处理JSON,Controller方法接受JSON格式的请求,使用Jackson将JSON数据转化为Java对象,执行业务逻辑后再将结果转化为JSON返回。最后,使用Spring Test进行测试,确保所有功能正常工作。 通过这个例子,新手可以...