我是java的新手。我正在调用webservice并通过java获取错误403,但是当我通过curl调用时它正在工作。这是我的curl代码
$ curl -v -H "Accept: application/json" -H "Content-type: application/json" \
-X GET https://openapi.etsy.com/v2/categories/jewelry?api_key={api_key}
这是Java代码:
try {
URL url = new URL("https://openapi.etsy.com/v2/listings/active?api_key={api_key}");
System.out.println(url.toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/json");
//conn.setRequestProperty("charset", "utf-8");
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
403表示禁止行动。
我的猜测是,要求使用您未在代码中提供的Web服务进行身份验证。
答案 1 :(得分:0)
Web服务器可以返回403 Forbidden HTTP状态代码,以响应客户端对网页或资源的请求,以指示可以访问服务器并理解该请求,但拒绝采取任何进一步的操作。 状态代码403响应是Web服务器被配置为拒绝由于某种原因访问客户端所请求的资源的结果。读取api并确保在制作过程中没有遗漏任何内容我的请求。POST
也尝试了HttpsURLConnection
但没有工作