java在调用Web服务时收到错误403

时间:2013-12-05 07:31:33

标签: java

我是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();

      }

2 个答案:

答案 0 :(得分:0)

403表示禁止行动。

我的猜测是,要求使用您未在代码中提供的Web服务进行身份验证。

答案 1 :(得分:0)

Web服务器可以返回403 Forbidden HTTP状态代码,以响应客户端对网页或资源的请求,以指示可以访问服务器并理解该请求,但拒绝采取任何进一步的操作。 状态代码403响应是Web服务器被配置为拒绝由于某种原因访问客户端所请求的资源的结果。读取api并确保在制作过程中没有遗漏任何内容我的请求。POST也尝试了HttpsURLConnection但没有工作