使用Javascript和MD5 haashing问题访问Web服务(python)

使用Javascript和MD5 haashing问题访问Web服务(python),javascript,api,rest,webclient,Javascript,Api,Rest,Webclient,请检查以下案例研究:- python web api客户端testapi.py提供给我们,它向Tomcat7运行的web服务发出请求。现在:- 请求在JSON正文中有两个参数:- 用户名:test 密码:test 请求中必须传递三个标头:- 日期:哪个RFC 2822格式的日期,例如,星期四,2000年12月21日16:01:07+0200 内容类型:application/json;字符集=utf-8 Content-MD5:对于此属性,python web客户端将执行以下步骤:- 生成参数

请检查以下案例研究:-

python web api客户端testapi.py提供给我们,它向Tomcat7运行的web服务发出请求。现在:-

  • 请求在JSON正文中有两个参数:- 用户名:test 密码:test

  • 请求中必须传递三个标头:- 日期:哪个RFC 2822格式的日期,例如,星期四,2000年12月21日16:01:07+0200 内容类型:application/json;字符集=utf-8 Content-MD5:对于此属性,python web客户端将执行以下步骤:- 生成参数数组的JSON主体 然后生成JSON主体的MD5哈希 然后生成MD5ed字符串的base64

以下是为Content-MD5生成值的python代码:-

h=hashlib.new('md5')
h.update(body)
headers['Content-MD5']=base64.b64encode(h.digest())
问题陈述:出于某种原因,我们要用javaScript制作web客户端。我们面临两个问题:-

  • 科尔斯
  • 加密问题
案例1(CORS):默认情况下Tomcat7不支持CORS,因此我们将tomcat的catalina.jar更新为7.0.42版本,该版本支持CORS,并重新启动了Tomcat7服务器。我们还在web.xml中添加了过滤器。现在请求到达web服务器,事件日志显示400错误,但控制台中出现网络错误,如:-

"NetworkError: 400 Bad Request - https://xxx.xxx.xx.xxx/api/v1/sessions"
sessions
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://xxx.xxx.xx.xxx/api/v1/sessions. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://xxx.xxx.xx.xxx/api/v1/sessions. (Reason: CORS request failed).
这里要提到的一点是,tomcat7、Web服务和javascript都在同一台机器上

案例2(加密问题): Python中JSON主体的MD5哈希似乎不同于javaScript的MD5哈希。我使用加密js,这是谷歌代码生成MD5。请参阅


请帮忙突破。我被困在这里。

CORS可能是因为你在url中使用了IP,你是如何使用crypto js的?嗨,哈克托!我使用了下面的代码片段来使用crytpo js,您可以将用于比较这些散列的代码添加到您的帖子中吗?