【问题标题】:https 400 error code encountered for amazon cloud drive rest apiamazon cloud drive rest api遇到https 400错误代码
【发布时间】:2015-07-07 11:19:22
【问题描述】:

我提出这个要求

https://www.amazon.com/ap/oa?client_id=amzn1.application-oa2-   
clientxxxxxxxxxxxxxxxxxxxxxxxxx&scope=clouddrive%3Aread%20clouddrive%3
Awrite&response_type=code&redirect_uri=https://roscasend.go.ro:8443/

我已成功重定向到此页面

 https://roscasend.go.ro:8443/?code=cccccccoooooodeeeeeee&scope=
 clouddrive%3Aread+clouddrive%3Awrite

但是当从以下请求更新字段时

 POST https://api.amazon.com/auth/o2/token HTTP/1.1
 Host: api.amazon.com
 Content-Type: application/x-www-form-urlencoded
 Cache-Control: no-cache
//those are the post's request arguments
grant_type=authorization_code&code=cccccccoooooodeeeeeee
&client_id=amzn1.application-oa2-clientxxxxxxxxxxxxxxxxxxxxxxxxx&
client_secret=secret______________________&redirect_uri=   
http%3A%2F%2Froscasend.go.ro%3A8443

使用我的凭据,我遇到了 400 错误。

你能给我任何关于如何更新上述请求以便工作的解决方案吗?

请注意,第一个请求是在浏览器中,第二个是通过 java。

【问题讨论】:

    标签: cloud amazon


    【解决方案1】:
    BasicCookieStore cookieStore = new BasicCookieStore();
            CloseableHttpClient httpclient = HttpClients.custom()
                    .setDefaultCookieStore(cookieStore)
                    .build();
    
    
            HttpUriRequest login = null;
            try {
                login = RequestBuilder.post()
                        .setUri(new URI("https://api.amazon.com/auth/o2/token"))
                        .addParameter("grant_type", "authorization_code")
                        .addParameter("code", "cccccccoooooodeeeeeee")
                         .addParameter("client_id", "amzn1.application-oa2-clientxxxxxxxxxxxxxxxxxxxxxxxxx")
                         .addParameter("client_secret", "secret______________________")
                         .addParameter("redirect_uri", "https://roscasend.go.ro:8443/")
                        .build();
            } catch (URISyntaxException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
            //login.addHeader("Content-Type", "application/x-www-form-urlencoded");
            //login.addHeader("Host", "api.amazon.com");
            login.addHeader("Cache-Control", "no-cache");
    
            CloseableHttpResponse response2 = null;
            try {
                response2 = httpclient.execute(login);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                HttpEntity entity = response2.getEntity();
    
                System.out.println("Login form get: " + response2.getStatusLine());
    
                InputStream in =   entity.getContent();
                InputStreamReader is = new InputStreamReader(in);
                StringBuilder sb=new StringBuilder();
                BufferedReader br = new BufferedReader(is);
                String read = br.readLine();
    
                while(read != null) {
                    //System.out.println(read);
                    sb.append(read);
                    read =br.readLine();
    
                }
    
                EntityUtils.consume(entity);
    
                System.out.println(sb.toString());
    
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                try {
                    response2.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                try {
                    httpclient.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
    

    【讨论】:

    • 您好 aurelianr,您在上面发布的代码最终解决了您的问题吗?或者您只是提供更新并分享您的来源以供审核。
    • 你好贾斯汀。我上面的代码解决了我的问题。但是你必须小心。在此请求之后:amazon.com/ap/oa?client_id=amzn1.application-oa2-clientxxxxxxxxxxxxxxxxxxxxxxxxxxx&scope=clouddrive%3Aread%20clouddrive%3 Awrite&response_type=code&redirect_uri=roscasend.go.ro:8443您将成功重定向到此页面roscasend.go.ro:8443/?code=cccccccoooooodeeeeeee&scope=clouddrive%3Aread+clouddrive%3Awrite。请注意,您需要 https 重定向 ulr 才能工作。如果您对 amazon cloud drive api 有任何问题,我很乐意为您提供帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 2021-01-05
    • 2020-10-05
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    相关资源
    最近更新 更多