httpclient正确请求可以接受到数据,当发送错误参数时返回null

一、问题描述 

在postman接口调试中响应的数据都是正常的,使用httpclient当传送错误参数时响应为null,传送正常数据时却可以接收到数据

二、解决问题

问题的原因也是因为懒惰,每次使用工具类时直接在网上摘抄,没有好好关注过工具类的具体实现。下边是在网上随便搜索的httpclient工具类。

以下是httpstatus类的状态详解。

  1. //Informational 1xx 信息

  2. '100' : 'Continue', //继续

  3. '101' : 'Switching Protocols', //交换协议

  4.  
  5. //Successful 2xx 成功

  6. '200' : 'OK', //OK

  7. '201' : 'Created', //创建

  8. '202' : 'Accepted', //已接受

  9. '203' : 'Non-Authoritative Information', //非权威信息

  10. '204' : 'No Content', //没有内容

  11. '205' : 'Reset Content', //重置内容

  12. '206' : 'Partial Content', //部分内容

  13.  
  14. //Redirection 3xx 重定向

  15. '300' : 'Multiple Choices', //多种选择

  16. '301' : 'Moved Permanently', //永久移动

  17. '302' : 'Found', //找到

  18. '303' : 'See Other', //参见其他

  19. '304' : 'Not Modified', //未修改

  20. '305' : 'Use Proxy', //使用代理

  21. '306' : 'Unused', //未使用

  22. '307' : 'Temporary Redirect', //暂时重定向

  23.  
  24. //Client Error 4xx 客户端错误

  25. '400' : 'Bad Request', //错误的请求

  26. '401' : 'Unauthorized', //未经授权

  27. '402' : 'Payment Required', //付费请求

  28. '403' : 'Forbidden', //禁止

  29. '404' : 'Not Found', //没有找到

  30. '405' : 'Method Not Allowed', //方法不允许

  31. '406' : 'Not Acceptable', //不可接受

  32. '407' : 'Proxy Authentication Required', //需要代理身份验证

  33. '408' : 'Request Timeout', //请求超时

  34. '409' : 'Conflict', //指令冲突

  35. '410' : 'Gone', //文档永久地离开了指定的位置

  36. '411' : 'Length Required', //需要Content-Length头请求

  37. '412' : 'Precondition Failed', //前提条件失败

  38. '413' : 'Request Entity Too Large', //请求实体太大

  39. '414' : 'Request-URI Too Long', //请求URI太长

  40. '415' : 'Unsupported Media Type', //不支持的媒体类型

  41. '416' : 'Requested Range Not Satisfiable', //请求的范围不可满足

  42. '417' : 'Expectation Failed', //期望失败

  43.  
  44. //Server Error 5xx 服务器错误

  45. '500' : 'Internal Server Error', //内部服务器错误

  46. '501' : 'Not Implemented', //未实现

  47. '502' : 'Bad Gateway', //错误的网关

  48. '503' : 'Service Unavailable', //服务不可用

  49. '504' : 'Gateway Timeout', //网关超时

  50. '505' : 'HTTP Version Not Supported' //HTTP版本不支持

网上所有的client工具类几乎都是默认服务器返回200的状态时才会解析收到的数据。而有的接口会根据规定修改响应的返回状态。因此调试接口时一定要注意这点

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用HttpClient发送POST请求,可以通过不同的方式来带参数。一种方式是将参数拼接到请求路径中,类似于"http:localhost/upload?key=value"的方式。可以使用NameValuePair和UrlEncodedFormEntity来实现。首先,创建一个List<NameValuePair>对象,将参数名和参数值添加到该对象中。然后,创建一个HttpPost对象,设置请求路径,并将参数列表和编码方式传递给UrlEncodedFormEntity对象,最后将UrlEncodedFormEntity对象设置为HttpPost的实体。示例代码如下所示:\[1\] 另一种方式是通过请求体携带参数提交。可以直接创建一个HttpPost对象,设置请求路径,然后执行HttpPost请求。示例代码如下所示:\[2\] 还有一种方式是通过URIBuilder来构建带参数请求路径,然后创建一个HttpPost对象,将构建好的URI传递给HttpPost对象。示例代码如下所示:\[3\] 以上是三种常见的使用HttpClient发送POST请求参数的方式。根据具体的需求和场景,选择适合的方式来发送POST请求参数。 #### 引用[.reference_title] - *1* *3* [java关于httpclient通过Post请求携带请求参数的说明](https://blog.csdn.net/daxues_/article/details/120670737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Java使用HttpClient发送GET和POST(带参数请求](https://blog.csdn.net/YOU_hunter/article/details/102655511)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值