繁体   English   中英

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

[英]java getting error 403 on calling web service

我是java的新手,我正在通过web调用webservice并收到错误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();

      }

403表示禁止动作。

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

Web服务器可能会响应客户端对Web页面或资源的请求而返回403 Forbidden HTTP状态代码,以指示可以访问该服务器并理解该请求,但是拒绝采取任何进一步的措施。 状态代码403响应是Web服务器被配置为出于某种原因拒绝客户端访问请求的资源的结果。 阅读api并确保在发出请求时不丢失任何内容。我也使用HttpsURLConnection尝试了POST ,但无法正常工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM