无法在Java中向经过身份验证的Hyperledger Composer rest服务器发出post请求

无法在Java中向经过身份验证的Hyperledger Composer rest服务器发出post请求,java,rest,authentication,hyperledger,hyperledger-composer,Java,Rest,Authentication,Hyperledger,Hyperledger Composer,我无法向经过身份验证的Composer rest服务器发出POST请求 我一直在用rest服务器试用Hyperledger composer 已启用身份验证和多用户。 我通过导出启用了基于Github的身份验证 COMPOSER_提供了带钱包和 身份 我在github中验证rest服务器,并且我能够执行rest Composer Swagger资源管理器中的操作 我还可以通过传递 带有访问令牌的url。 1.这个有效 邮递员也是 问题是即使在将访问令牌作为param传递之后,我也无法从jav

我无法向经过身份验证的Composer rest服务器发出POST请求

  • 我一直在用rest服务器试用Hyperledger composer 已启用身份验证和多用户。
  • 我通过导出启用了基于Github的身份验证 COMPOSER_提供了带钱包和 身份
  • 我在github中验证rest服务器,并且我能够执行rest Composer Swagger资源管理器中的操作
  • 我还可以通过传递 带有访问令牌的url。 1.这个有效 邮递员也是
问题是即使在将访问令牌作为param传递之后,我也无法从java代码向composer rest URL发出post请求。我尝试过OKHttpClient、Apache HTTPClient、java.net客户端、CloseableHTTPClient

它给我的只是

Server returned HTTP response code: 401
在所有方法中,我都会得到一个“授权失败”错误

我不知道我是否遗漏了什么,因为我可以从邮递员那里做一个休息手术。我从Postman自身获取代码格式,并将其粘贴到Java代码中,但它仍然不起作用。我不知道我做错了什么

建议,代码片段


谢谢

既然您成功地从Postman那里运行了这个程序,那么显然您的java代码中缺少了一些东西

您的URL可能是正确的,但可能缺少标头、json类型或类似的内容

检查您的邮递员请求,并在java代码中完全复制它,包括所有内容,而不仅仅是URL


保留一个请求日志,并将其与Postman的请求进行比较,以明确区别。

既然您成功地从Postman处运行了该请求,那么显然您的java代码中缺少了一些内容

您的URL可能是正确的,但可能缺少标头、json类型或类似的内容

检查您的邮递员请求,并在java代码中完全复制它,包括所有内容,而不仅仅是URL


保留您的请求日志,并将其与邮递员的请求进行比较,以准确了解两者的区别。

尝试以下代码检索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();
}
public void getCookieUsingCookieHandler(){
试试{
//实例化CookieManager;
//请确保设置CookiePolicy
CookieManager=新建CookieManager();
manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
setDefault(管理器);
//从URLConnection获取内容;
//Cookie由网站设置
URL=新URL(“http://host.example.com");
URLConnection=url.openConnection();
connection.getContent();
//从底层获取cookie
//库克商店
CookieStore cookieJar=manager.getCookieStore();
列出cookies=
cookieJar.getCookies();
用于(HttpCookie cookie:cookies){
if(cookie.getName().equalsIgnoreCase(“访问令牌”)){
System.out.println(“CookieHandler检索到的cookie:+cookie.getValue());
打破
}
}
}捕获(例外e){
System.out.println(“无法使用CookieHandler获取cookie”);
e、 printStackTrace();
}
}


您可以从这里引用它:

尝试以下代码检索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();
}
public void getCookieUsingCookieHandler(){
试试{
//实例化CookieManager;
//请确保设置CookiePolicy
CookieManager=新建CookieManager();
manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
setDefault(管理器);
//从URLConnection获取内容;
//Cookie由网站设置
URL=新URL(“http://host.example.com");
URLConnection=url.openConnection();
connection.getContent();
//从底层获取cookie
//库克商店
CookieStore cookieJar=manager.getCookieStore();
列出cookies=
cookieJar.getCookies();
用于(HttpCookie cookie:cookies){
if(cookie.getName().equalsIgnoreCase(“访问令牌”)){
System.out.println(“CookieHandler检索到的cookie:+cookie.getValue());
打破
}
}
}捕获(例外e){
System.out.println(“无法使用CookieHandler获取cookie”);
e、 printStackTrace();
}
}


你可以在这里查阅:

谢谢@Honey Shah。我是先写下这段代码,然后再发帖子还是?它是如何工作的是的,你可以把它放进去,但在那之前,你需要检索请求所需的部分令牌。谢谢@Honey Shah。我是先写下这段代码,然后再发帖子还是?它是如何工作的?是的,你可以把它放进去,但在此之前,你需要检索请求所需的部分令牌。我实际上复制了邮递员代码并将其放在Java中,但它不起作用。也许我遗漏了一个标题。我实际上复制了邮递员代码并将其放在Java中,但它不起作用。也许我遗漏了一个标题