qq1104682401 2018-07-09 08:57 采纳率: 100%
浏览 10961
已采纳

HTTP 使用POST发送请求 request接受不到数据

javaweb 使用POST请求另一个服务器,服务器request获取不到数据 全部为null图片说明

  • 写回答

6条回答 默认 最新

  • a274433141 2018-07-09 14:12
    关注

    request获取的参数时form-encoding形式的参数,你传标注json格式的数据过去是解析不出来的,你可以按我贴的代码这样包装一下试试看。

    这是httpClient调用类
    public static String httpPost(List params, String url) throws Exception {
    String body = "";
    HttpPost httpPost = null;
    String requestParams = "";
    try {
    DefaultHttpclient httpClient = new DefaultHttpclient();
    httpPost = new HttpPost();
    // 设置参数
    httpPost.setURI(new URI(url));
    httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
    requestParams = EntityUtils.toString(new UrlEncodedFormEntity(params));
    // 发送请求
    HttpResponse httpresponse = httpClient.execute(httpPost);
    // 获取返回数据
    HttpEntity entity = httpresponse.getEntity();
    body = EntityUtils.toString(entity, "UTF-8");

            if (entity != null) {
                EntityUtils.consume(entity);
            }
        } catch (ConnectException ce) {
            ce.printStackTrace();
            logger.error("ConnectException " + url + "  连接异常," + requestParams);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("Exception:  " + url + " 异常," + requestParams);
        } finally {
            try {
                if (httpPost != null) {
                    httpPost.releaseConnection();
                }
            } catch (Exception e) {
                logger.error("Exception: release  http connection error!");
            }
        }
        return body;
    }
    
     这是参数包装
    

    List params = new ArrayList();
    params.add(new BasicNameValuePair("storeid", “123”)));
    params.add(new BasicNameValuePair("load",“2323”)));

     请试一下吧,若解决问题请搭赏几个c币 嘿嘿
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵