gpt4 book ai didi

java - URL 的 commons io 403 但 httpclient 没问题

转载 作者:搜寻专家 更新时间:2023-11-01 02:28:40 28 4
gpt4 key购买 nike

通用 io 代码:

String resultURL = String.format(GOOGLE_RECOGNIZER_URL, URLEncoder.encode("hello", "UTF-8"), "en-US");
URI uri = new URI(resultURL);
byte[] resultIO = IOUtils.toByteArray(uri);

我遇到了这个异常:

Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: http://translate.google.cn/translate_tts?ie=UTF-8&q=hello&tl=en-US&total=1&idx=0&textlen=3
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:654)
at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:635)
at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:617)
at com.renren.intl.soundsns.simsimi.speech.ttsclient.impl.GoogleTTSClient.main(GoogleTTSClient.java:70)

但是当我使用httpclient时,结果是可以的。

String resultURL = String.format(GOOGLE_RECOGNIZER_URL, URLEncoder.encode(text, "UTF-8"), "en-US");

HttpClient client = new HttpClient();

GetMethod g = new GetMethod(resultURL);

client.executeMethod(g);

byte[] resultByte = g.getResponseBody();

这是怎么发生的?

提前致谢:)

maven 依赖项:

<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>

最佳答案

Jon Skeet 是对的!

对于我来说,如果是 java.net.URL JVM 传递下一个 header :

User-Agent: Java/1.7.0_10
Host: translate.google.cn
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

如果是 Apache HttpClient:

User-Agent: Jakarta Commons-HttpClient/3.1
Host: translate.google.cn

如果你改变了,java.net.URL 的用户代理:

System.setProperty("http.agent", "Jakarta Commons-HttpClient/3.1");

请求成功,没有 HTTP 403。

如果您的用户代理以 Java 开头,您会收到 403 错误。任何具有模式 Java.* 的用户代理都会抛出 403 错误。但是如果你使用这种模式 .+Java.* 就没问题了。

关于java - URL 的 commons io 403 但 httpclient 没问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14996140/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com