当前位置: 首页 > 知识库问答 >
问题:

如何在Spring boot框架中发送HTTP请求?

徐麒
2023-03-14

我想将带有JSON对象的POST请求发送到指定的URL,但总是失败。

我已经检查了每个数据,以确保它们是正确的,但当我发送它们时,它们似乎被更改了,因此目标服务器无法正确处理我的请求。

 public static String translate(String query, String from, String to) {
    JSONObject response = new JSONObject();
    JSONObject request = new JSONObject();

    //Generate a random number
    int salt = getRandom();

    //Generate the sign
    String sign = encodeMD5Hex(APP_ID + query + salt + KEY);

    //Put all parameters into the request
    request.put("q", query);
    request.put("from", from);
    request.put("to", to);
    request.put("appid", APP_ID);
    request.put("salt", salt);
    request.put("sign", sign);

    return sendPOSTRequest(request);
}

private static String encodeMD5Hex(String data){
    return DigestUtils.md5Hex(data);
}

private static int getRandom() {
    return (int) ((Math.random() + 1) * 10000);
}

private static String sendPOSTRequest(JSONObject data) {
    RestTemplate restTemplate = new RestTemplate();
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);

    HttpEntity<JSONObject> entity = new HttpEntity(data, headers);
    String answer = restTemplate.postForObject(BAIDU_TRANS_API_URL, entity, String.class);
    return answer;
}

我想这可能是appid中的错误。回复总是告诉我appid不正确,即使我百分之百确定它是正确的。下面是appid参数的格式:name:appid type:INT,但17位数字的INT完全超出范围。

响应:{“error\u code”:“52003”,“error\u msg”:“UNAUTHORIZED USER”}

共有1个答案

孔阳炎
2023-03-14

JSONObject将接受object类型的值,因此您可以将appId值转换为long或远程http调用中接受的任何其他数据类型。

 类似资料:
  • 问题内容: 在Java中,如何编写HTTP请求消息并将其发送到HTTP WebServer? 问题答案: 你可以使用。 示例(从此处开始),进行了改进。包括在链接腐烂的情况下:

  • 问题内容: 我在这里尝试做的是获取给定URL的标头,以便确定MIME类型。我希望能够查看是否http://somedomain/foo/将返回例如HTML文档或JPEG图像。因此,我需要弄清楚如何发送HEAD请求,以便无需下载内容就可以读取MIME类型。有人知道这样做的简单方法吗? 问题答案: 使用。 还有一个getheader(name)获取特定的标头。

  • 问题内容: 我想知道是否可以将PUT,DELETE请求(实际上)发送java.net.HttpURLConnection到基于HTTP的URL。 我已经读了很多描述如何发送GET,POST,TRACE,OPTIONS请求的文章,但是我仍然没有找到成功执行PUT和DELETE请求的示例代码。 问题答案: 要执行HTTP PUT: 要执行HTTP删除:

  • 我正在制作一个文本游戏,需要将一个对象(地点)上传到Java web服务器。(玩家需要共享数据,但这里不关心安全性)我正在使用java。网http API。我目前的方法是 但这会抛出。我真的不知道该怎么解决这个问题,所有的教程和StackOverflow问题要么使用大量的第三方API,要么使用过时的代码(java 9之前的版本),要么想要发送字符串或int之类的东西。这些都是无益的。我不太确定这段

  • 问题内容: 我正在尝试使用node.js将http请求发送到neo4j数据库。这是我正在使用的代码: 我检查数据库是否正在运行(我已连接到管理网页,并且一切正常。)恐怕问题不在数据库方面,而在node.js方面。 我希望有人可以对此问题有所启发。我想学习如何在node.js中发送http请求,答案不必特定于neo4j问题。 提前致谢 问题答案: 如果是简单的GET请求,则应使用 否则,需要关闭。

  • 问题内容: 我是Android的新手,所以关于android的知识还不是很多,好的,请讲到重点,我需要通过用户名和密码进行 登录 ,因为我必须通过JSON进行http requset并返回响应也将以JSON格式提供。所以任何人都可以帮助我。谢谢。 问题答案: 试试这个代码