我无法向经过身份验证的Composer rest服务器发出POST请求。
问题是即使将访问令牌作为参数传递后,我也无法从Java代码向作曲家休息URL发出发布请求。我尝试使用OKHttpClient,Apache HTTPClient,java.net客户端,CloseableHTTPClient。
给我的就是
Server returned HTTP response code: 401
在所有方法中,我都会收到“授权失败”错误。
我不知道我是否有任何遗漏,因为我能够从Postman进行休息手术。我从Postman本身获取代码格式,并将其粘贴到Java代码中,但仍然无法正常工作。我不知道我在做什么错,
建议,代码段?
谢谢!
答案 0 :(得分:2)
由于您设法从Postman运行此程序,因此您显然在Java代码中缺少了某些内容。
您可能具有正确的URL,但可能缺少标头,json类型或类似的东西。
检查您的邮递员请求,然后将其准确复制到您的Java代码中,而不只是URL中。
保留您的请求日志,并将其与邮递员进行比较,以确切地了解两者之间的区别。
答案 1 :(得分:2)
尝试以下代码以获取Cookie:
public void getCookieUsingCookieHandler() {
try {
// Instantiate CookieManager;
// make sure to set CookiePolicy
CookieManager manager = new CookieManager();
manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(manager);
// get content from URLConnection;
// cookies are set by web site
URL url = new URL("http://host.example.com");
URLConnection connection = url.openConnection();
connection.getContent();
// get cookies from underlying
// CookieStore
CookieStore cookieJar = manager.getCookieStore();
List <HttpCookie> cookies =
cookieJar.getCookies();
for (HttpCookie cookie : cookies) {
if (cookie.getName().equalsIgnoreCase("access_token")) {
System.out.println("CookieHandler retrieved cookie: " + cookie.getValue());
break;
}
}
} catch(Exception e) {
System.out.println("Unable to get cookie using CookieHandler");
e.printStackTrace();
}
}
您可以从这里引用它:https://docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/accessingCookies.html