java - 面向 REST Web 服务的授权 header OAuth1

标签 java http

我正在尝试使用 HttpURLConnection 调用休息 Web 服务。我想添加授权 header OAuth1。我总是收到 401 响应。

我已经通过 SOAPUI 或 POSTMAN 成功使用了这个 ws。 我构建的授权字符串是否需要编码或其他什么?

String oautStr = "OAuth oauth_consumer_key=\"1234\",oauth_token=\"1dw3\",oauth_signature_method=\"HMAC-SHA1\",oauth_timestamp=\"1562334372\",oauth_nonce=\"wf4ffr\",oauth_version=\"1.0\",oauth_signature=\"34r4ff\"";

URL url = new URL(urlStr);  

HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
            con.setRequestProperty("Authorization", oautStr);   
            con.setRequestProperty("Content-Type", "application/json");
            con.setRequestProperty("Accept", "application/json");
            con.setRequestMethod("POST");
            con.setDoOutput(true);

            OutputStream os = con.getOutputStream();
            OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");    
            osw.write("{\"user\":\"1203\",\"name\":\"test\",,\"test\":{}}");
            //System.out.println(con.getRequestProperty("Authorization"));
            osw.flush();
            osw.close();
            os.close();

最佳答案

HTTP 401 响应意味着未经授权/需要授权。

请求尚未应用,因为它缺少目标资源的有效身份验证凭据。

您可以在此找到link一些如何修复它的建议。

关于java - 面向 REST Web 服务的授权 header OAuth1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56929339/

相关文章:

java - 使用 Dropwizard 0.7.1 设置 hibernate 时出现问题。 "Unable to create a hibernate session on 0.7.1"

java 9 模块,NoClassDefFoundError : java. sql.Date

javascript - “被 CORS 策略阻止”,但存在 header

javascript - Angular Http 参数未发送

http - 如何为angular2+ http请求实现超时

java - 需要一些基本的java帮助

java - 构建加权无向图

java - 改造 Android 应用程序从 Node.js 服务器获取 JSON

http - 无法在 Vert.X 3.0.0 中使用 getBodyAsJson() 访问请求正文

http - 美国的SMS GateWay