【问题标题】:http OAuth response errorhttp OAuth 响应错误
【发布时间】:2012-06-27 00:45:29
【问题描述】:
@Override
protected Boolean doInBackground(Void... params) {
    // TODO Auto-generated method stub


        HttpClient httpclient = new DefaultHttpClient();  
        Log.d("HTTP","Exe");
        String sw=Sign(token);
        Log.d("HTTP","Exe");

        HttpPost httpPost;
        Log.d("HTTP","Exec");
        httpPost = new HttpPost(sw);
        Log.d("HTTP","Execute");

        HttpResponse response;
        try 
        {

            Log.d("HTTP","Executed");
//**THIS IS WHERE IT STOPS EXECUTION**

                response = httpclient.execute(httpPost); // the request executes
                Log.d("HTTP","Executed");
                HttpEntity entity = response.getEntity();
                InputStream is = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"), 256);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null)  sb.append(line); 
                String result = sb.toString();
                is.close();
                Log.d("HTTP",result);
                String  responseBody = EntityUtils.toString(((HttpResponse) response).getEntity());
                retString=responseBody;
                Log.d("HTTP",result);

            } 

            catch (ClientProtocolException e) {
                    e.printStackTrace();
            }
            catch(ConnectTimeoutException e){
                    e.printStackTrace();
            }
            catch (IOException e) {
                    e.printStackTrace();
            }


            //return null;

        return null;
    }

我的 LogCat:

06-25 23:45:59.105: D/HTTP(5993): wz27t6thob0fbxl
06-25 23:46:03.223: D/HTTP(5993): Exe
06-25 23:46:03.766: D/HTTP(5993): 1340648163
06-25 23:46:05.378: D/HTTP(5993): https://api.dropbox.com/1/shares/dropbox/a.jpg?oauth_consumer_key=2f2y1dyuqhp58ek&oauth_token=wz27t6thob0fbxl&oauth_nonce=1340648163&oauth_timestamp=1340648163&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_signature=bo%2F5zuowvX%2Fcjy5uPP5ZPjUiP64%3D%0A
06-25 23:46:05.402: D/HTTP(5993): Exe
06-25 23:46:05.402: D/HTTP(5993): Exec
06-25 23:46:06.132: D/HTTP(5993): Execute
06-25 23:46:09.363: D/HTTP(5993): Executed
06-25 23:46:38.742: D/dalvikvm(5993): GC_FOR_MALLOC freed 5331 objects / 305856 bytes in 400ms
06-25 23:46:51.413: D/HTTP(5993): Executed
06-25 23:46:51.952: D/HTTP(5993): {"error": "Invalid signature. Expected signature base string: POST&https%3A%2F%2Fapi.dropbox.com%2F1%2Fshares%2Fdropbox%2Fa.jpg&oauth_consumer_key%3D2f2y1dyuqhp58ek%26oauth_nonce%3D1340648163%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1340648163%26oauth_token%3Dwz27t6thob0fbxl%26oauth_version%3D1.0"}
06-25 23:47:49.032: W/dalvikvm(5993): threadid=7: thread exiting with uncaught exception (group=0x4001d800)
06-25 23:47:49.462: E/AndroidRuntime(5993): FATAL EXCEPTION: AsyncTask #1
06-25 23:47:49.462: E/AndroidRuntime(5993): java.lang.RuntimeException: An error occured while executing doInBackground()
06-25 23:47:49.462: E/AndroidRuntime(5993):     at android.os.AsyncTask$3.done(AsyncTask.java:200)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at java.lang.Thread.run(Thread.java:1096)
06-25 23:47:49.462: E/AndroidRuntime(5993): Caused by: java.lang.IllegalStateException: Content has been consumed
06-25 23:47:49.462: E/AndroidRuntime(5993):     at org.apache.http.entity.BasicHttpEntity.getContent(BasicHttpEntity.java:84)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at org.apache.http.conn.BasicManagedEntity.getContent(BasicManagedEntity.java:100)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at org.apache.http.util.EntityUtils.toString(EntityUtils.java:112)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at org.apache.http.util.EntityUtils.toString(EntityUtils.java:146)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at cloud.mobile.DropboxApi.doInBackground(DropboxApi.java:145)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at cloud.mobile.DropboxApi.doInBackground(DropboxApi.java:1)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
06-25 23:47:49.462: E/AndroidRuntime(5993):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-25 23:47:49.462: E/AndroidRuntime(5993):     ... 4 more

签名的密钥(sw)是https://api.dropbox.com/1/shares/dropbox/a.jpg?oauth_consumer_key=2f2y1dyuqhp58ek&oauth_token=wz27t6thob0fbxl&oauth_nonce=1340648163&oauth_timestamp=1340648163&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_signature=bo%2F5zuowvX%2Fcjy5uPP5ZPjUiP64%3D%0A

我对http没有太多经验..

因为 httpPost = 新的 HttpPost(sw); 工作正常,这是否意味着基本字符串签名是正确的?

还是我错过了什么?

【问题讨论】:

    标签: java android http oauth hmacsha1


    【解决方案1】:

    这似乎与 OAuth 错误无关。根据以下日志声明,您似乎没有在 http post url 中设置主机。

    Caused by: java.lang.IllegalStateException: Target host must not be null, or set in parameters.
    

    【讨论】:

    • :你能解释一下这个问题吗
    • 您添加了令牌,这很好,但是您要访问的网址在哪里?您的代码如何知道它需要与哪台计算机/网络通信?应该有一些带有网络详细信息的 url。例如,如果您的代码需要与 google 对话,您的 url 将是 google.com。您的代码缺少该部分。
    • 我认为'api.dropbox.com/1/shares/dropbox/a.jpg'部分签名密钥(sw)就足够了。我应该明确指定吗?
    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 2013-10-17
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2018-12-20
    相关资源
    最近更新 更多