【问题标题】:Using Apache Http Client for a POST request使用 Apache Http 客户端进行 POST 请求
【发布时间】:2018-06-16 12:48:10
【问题描述】:

我正在尝试使用 Gson 开发 Java 应用程序,以使用外部 api 来获取简单的文本翻译。下面是代码和输出。我在 HTTP 发布 URL 中的 API 密钥的指定位置使用了我的 API 密钥 你能帮我搞定这个工作吗? 非常感谢。

// 代码

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("URL");

StringEntity input = new StringEntity(json);
input.setContentType("application/json");
post.setEntity(input);
HttpResponse response = client.execute(post);
System.out.println(response.getStatusLine());  

//输出

HTTP/1.1 415 Unsupported Media Type

【问题讨论】:

    标签: java json gson translators


    【解决方案1】:

    如您所见,您收到了来自服务器的404 Not Found 响应。这通常意味着您向错误的 URL 发送请求。

    您应该使用 https 版本的请求,如 documentation 所示。 所以正确的 URL 如下所示:https://translate.yandex.net/api/v1.5/tr.json/translate?lang=en-ru&key=API-KEY。

    编辑

    关于第二个问题,尝试为您的帖子添加标题。

    post.addHeader("Content-Type", "application/json");
    

    编辑 2

    我查看了文档,但他们没有在请求中使用正文。只需像这样在 URL 中添加文本:

    https://translate.yandex.net/api/v1.5/tr.json/translate?text=live&lang=en-ru&key=API-KEY`
    

    别忘了删除设置实体,我的意思是删除post.setEntity(input)和相关的东西。

    【讨论】:

    • 感谢回复。这是我与 API 密钥一起使用的 URI
    • 你的意思是你把正确的 API 密钥放在那里,但这个 URL 只是为了给我们展示一个例子?
    • 谢谢。有效!。但我现在收到不同的错误代码。 :(
    • 您应该编辑您的问题或创建一个与该问题相关的新问题。还要显示textConv,很难猜出它是如何表示的。
    • 完成!。谢谢你的帮助。真的很感激。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 2011-12-30
    • 2020-02-25
    相关资源
    最近更新 更多