我正在尝试使用 Java 连接到 Bing 搜索 API。
但是,调用
connection.getInputStream()
,它会抛出 HTTP 401 错误。
即使我故意使用不正确的订阅密钥,也会发生同样的错误。我确信我的实际订阅密钥是正确的。
关于为什么会发生这种情况有什么想法吗?
我在尝试调用 Bing 网络搜索 API 时遇到了同样的错误。我通过创建认知服务实例并使用其端点和密钥解决了这个问题:
这是我基于你的测试代码:
import java.io.InputStream;
import java.net.URL;
import java.net.URLEncoder;
import javax.net.ssl.HttpsURLConnection;
public class HTTPtest {
public static void main(String[] args) {
String Endpoint = "<Endpoint>";
String key = "<key>";
String input = "Bill Gates divorce";
try {
URL url = new URL(Endpoint + "bing/v7.0/search" + "?q=" + URLEncoder.encode(input, "UTF-8"));
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestProperty("Ocp-Apim-Subscription-Key", key);
InputStream stream = connection.getInputStream();
System.out.println(new String(stream.readAllBytes()));
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
结果:
如果您还有其他问题,请告诉我。