创建文件Rest API会抛出403,但是GET可以正常工作

编程入门 行业动态 更新时间:2024-10-13 12:16:50
本文介绍了创建文件Rest API会抛出403,但是GET可以正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

您好,我正在尝试使用rest api创建文件.但我继续得到403.用同样的方法,我可以获取文件,但是在PUT的情况下,我可以继续获取文件

Hi, I am trying to create file using rest api. but I keep on getting 403 . With the same way I am able to get file but in case of PUT I keep on getting

响应消息:服务器未能验证请求.请确保正确构成Authorization标头的值(包括签名). 响应码:403

Response message : Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. Response code : 403

我正在用java

I am creating string to sign like this in java

字符串 stringToSign = "PUT \ n" + "\ n" //内容编码

String stringToSign = "PUT\n" + "\n" // content encoding

+ "\ n" //内容语言

+ "\n" // content language

+ " 0" //内容长度

+ "0" // content length

+ "\ n" //内容md5

+ "\n" // content md5

+ "\ n" //内容类型

+ "\n" // content type

+ "\ n" //日期

+ "\ n" //(如果自此以来已被修改)

+ "\n" // if modified since

+ "\ n" //如果匹配

+ "\n" // if match

+ "\ n" //如果不匹配

+ "\n" // if none match

+ "\ n" //(如果自此以来未修改)

+ "\n" // if unmodified since

+ "\ n" //范围

+ " x-ms-content-length:1024 \ n"

+ "x-ms-content-length:1024\n"

+ " x-ms-date:" + date + " \ nx-ms-type:file \ n"

+ "x-ms-date:" + date + "\nx-ms-type: file\n"

+ " x-ms-version:2015-02-21 \ n" //标头

+ "x-ms-version:2015-02-21\n" // headers

+ "/" + 帐户 + request .getURL().getPath(); //资源

+ "/" + account + request.getURL().getPath(); // resources

和设置标题

请求 .setRequestMethod("PUT"; );

request.setRequestMethod("PUT");

request .setRequestProperty("Content-Length" , "0" );

request.setRequestProperty("Content-Length", "0");

request .setRequestProperty("x-ms-content-length" , "1024" );

request.setRequestProperty("x-ms-content-length", "1024");

request .setRequestProperty("x-ms-date"; , date );

request.setRequestProperty("x-ms-date", date);

request .setRequestProperty("x-ms-type" , 文件" );

request.setRequestProperty("x-ms-type", "file");

request .setRequestProperty("x-ms-version" , "2015-02-21" );

request.setRequestProperty("x-ms-version", "2015-02-21");

request .setRequestProperty("Authorization" , auth );

request.setRequestProperty("Authorization", auth);

还将身份验证创建为

私有 静态字符串getAuthenticationString(String stringToSign )抛出 异常 {

private static String getAuthenticationString(String stringToSign) throws Exception {

Mac mac = Mac.getInstance("HmacSHA256" ) ;

Mac mac = Mac.getInstance("HmacSHA256");

mac .init( new SecretKeySpec(Base64.decode( key ), "HmacSHA256" ));

mac.init(new SecretKeySpec(Base64.decode(key), "HmacSHA256"));

字符串 authKey = 新 String (Base64.encode( mac .doFinal( stringToSign .getBytes(" UTF-8" ))) ));

String authKey = new String(Base64.encode(mac.doFinal(stringToSign.getBytes("UTF-8"))));

字符串 auth = " SharedKey" + 帐户 + ":" + authKey ;

String auth = "SharedKey " + account + ":" + authKey;

返回 auth ;

}

请帮助我解决此错误.

推荐答案

你好,

请确保时间设置正确(时区),或者本地计算机上的系统时钟没有关闭.

Please make sure that the time settings are correct (timezone) or if the systemclock isn't turned off on your local computer.

docs.microsoft/zh-cn/previous-versions/windows/it-pro/windows-server-2003/cc738995(v = ws.10)

docs.microsoft/en-us/previous-versions/windows/it-pro/windows-server-2003/cc738995(v=ws.10)

如果此答案有帮助,请单击标记为答案"或投票.提供额外的 关于您的论坛体验的反馈,请单击在这里

If this answer was helpful, click "Mark as Answer" or Up-Vote. To provide additional feedback on your forum experience, clickHere

更多推荐

创建文件Rest API会抛出403,但是GET可以正常工作

本文发布于:2023-11-02 03:50:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1551290.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:抛出   文件   工作   API   Rest

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!