代码之家  ›  专栏  ›  技术社区  ›  TechPassionate

Azure存储服务REST API:创建租约

  •  0
  • TechPassionate  · 技术社区  · 6 年前

    响应消息:服务器验证请求失败。确保授权头的值的格式正确,包括签名。

    String stringToSign = "PUT\n\n\n\n\n\n\n\n\n\n\n\nx-ms-date:" + date + "\nx-ms-version:" + "2018-03-28\nx-ms-lease-action:acquire\nx-ms-lease-duration:1\nx-ms-proposed-lease-id:1f812371-a41d-49e6-b123-f4b542e851c5\n" + "/" + storageAccount + "/"+ "container-lease-test"+"\ncomp:lease";
    

    HttpURLConnection connection = (HttpURLConnection)new URL(url).openConnection();
    connection.setRequestMethod(vMethod);
    connection.addRequestProperty("Authorization", authHeader);
    connection.addRequestProperty("x-ms-date", date);
    connection.addRequestProperty("x-ms-version", "2018-03-28");
    connection.setDoOutput(true);
    connection.setFixedLengthStreamingMode(0);
    
    //Create Lease
    connection.addRequestProperty("x-ms-lease-action", "acquire");
    connection.addRequestProperty("x-ms-lease-duration","1");
    connection.addRequestProperty("x-ms-proposed-lease-id","1f812371-a41d-49e6-b123-f4b542e851c5");
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Jerry Liu Phantom    6 年前

    我们需要按照头名称按字典顺序对x-ms-*头进行升序排序。最后你还错过了重新打字。

    String stringToSign = "PUT\n\n\n\n\n\n\n\n\n\n\n\nx-ms-date:" + date + "\nx-ms-lease-action:acquire\nx-ms-lease-duration:15\nx-ms-proposed-lease-id:1f812371-a41d-49e6-b123-f4b542e851c5\nx-ms-version:2018-03-28\n/" + storageAccount + "/container-lease-test\ncomp:lease\nrestype:container";
    

    除此之外, x-ms-lease-duration

    docs Fiddler 为了捕获流量,如果得到403错误,您可以看到预期的stringtosign。然后你可以享受快速调试。