无法使用 http post 传递请求参数

任何

我需要从 Java 代码本身调用控制器。控制器如下,

@RequestMapping(value = "temp", method = RequestMethod.POST)
@ResponseBody
public String uploadDataFromExcel(@RequestBody Map<String, String> colMapObj, @ModelAttribute ReqParam reqParam) {
}

我正在尝试使用 http post 调用上述控制器,如下所示,

String url ="http://localhost:8081/LeadM" + "/temp/?searchData="+ reqParam.getSearchData()+" &exportDiscardRec=" + reqParam.isExportDiscardRec() + "&fileName=" + reqParam.getFileName() + "&sheetName=" + reqParam.getSheetName() +  "&importDateFormat=" + reqParam.getImportDateFormat()  + "&selectedAddressTypes="+ reqParam.getSelectedAddressTypes() + "&duplicatesHandleOn=" + reqParam.getDuplicatesHandleOn() + colMapObj;

HttpPost httpPost = new HttpPost(url);
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity entity = httpResponse.getEntity();
        InputStream rstream = entity.getContent();
        jsonObject = new JSONObject(new JSONTokener(rstream));

其中 reqParam 是一个类对象是类对象, colMapObj 是我想传递给上述控制器的地图。但是,当执行 http post 时,它会在 url 中给出异常。如果有人知道正确的方法,请提出建议,谢谢。

雷诺斯V

URL 不适用于空格。从上面的代码中:“ &exportDiscardRec=" 为避免此类问题,请尽可能使用URIBuilder或类似的东西。

现在对于请求,您没有正确构建您的请求,例如您没有提供正文。检查以下示例:

    Map<String, String> colMapObj = new HashMap<>();
    colMapObj.put("testKey", "testdata");

    CloseableHttpClient client = HttpClients.createDefault();
    HttpPost httpPost = new HttpPost(url);

    JSONObject body = new JSONObject(colMapObj);
    StringEntity entity = new StringEntity(body.toString());
    httpPost.setEntity(entity);
    httpPost.setHeader("Accept", "application/json");
    httpPost.setHeader("Content-type", "application/json");

    CloseableHttpResponse response = client.execute(httpPost);
    System.out.println(response.getEntity().toString());
    client.close();

更多示例只是谷歌“apache http客户端发布示例”(例如http://www.baeldung.com/httpclient-post-http-request

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java中使用Post参数发送简单的HTTP Post请求

无法在http请求中设置POST正文

如何使用Apache HTTP客户端将复杂参数传递给POST请求?

Angular2-Http POST请求参数

将JSON传递到HTTP POST请求

无法在Angular中使用$ http发送POST请求-ReferenceError:未定义$ http

使用C#发送HTTP POST请求

如何在Ionic 3上将URL参数(查询字符串)传递给HTTP POST请求

使用Apache Http Client进行POST请求

如果URL中传递了多个参数,则Django无法在POST请求正文中加载Json

使用“确保放心”的HTTP POST请求(示例)

PhpStorm HTTP客户端。无法将POST参数传递给本地主机

使用Qt中的命名参数列表发出HTTP POST请求

使用HTTP标头发送POST请求

使用PHP + cURL的HTTP POST请求

使用$ http.post,AngularJS的Null参数

使用http发布请求传递事件更改参数

将参数传递给webmethod $ http post

使用POST请求将类对象作为输入参数传递给RESTful WCF服务

无法将有效负载参数传递给 Node-RED http 请求

无法通过 xhr 请求将 post 参数传递给 yii2 控制器

无法发出 HTTP post 请求

使用 Apache http post 查询参数

Laravel 无法从 HTTP POST 请求访问 FormData?

需要使用请求 npm 在 NODE js 中的 post 方法中将大量数据作为参数传递

如何使用 Java 中的新 HTTP 客户端在 POST() 请求中传递参数

使用 Swift Combine 的 HTTP POST 请求

HTTP POST 请求是否允许传递有效负载和输入参数

如何在多部分请求中将图像文件作为 http 正文参数(POST)传递