如何将通过web代理工具捕获的REST HttpRequest转换为用户可以单击的链接?

如何将通过web代理工具捕获的REST HttpRequest转换为用户可以单击的链接?,rest,httprequest,Rest,Httprequest,我使用了一个函数来捕获某个REST HttpRequest。该请求是一个HTTP PUT命令,后跟一个非常长的REST链接,其中包含发送到服务器的特定数据 在代理工具中,它看起来像这样: 标题 PUT http://XXX.XXX.XXX.XXX:8080/rest/blah/blah/.../ HTTP/1.1 Host: XXX.XXX.XXX.XXX:8080 User-Agent: Mozilla/5.0 Accept: application/json, text/javascript

我使用了一个函数来捕获某个REST HttpRequest。该请求是一个HTTP PUT命令,后跟一个非常长的REST链接,其中包含发送到服务器的特定数据

在代理工具中,它看起来像这样:

标题

PUT http://XXX.XXX.XXX.XXX:8080/rest/blah/blah/.../ HTTP/1.1
Host: XXX.XXX.XXX.XXX:8080
User-Agent: Mozilla/5.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-language: en-us, en:q=0.5
Proxy Connection:keep-alive
Content-Type:XMLHttpRequest
Referer: http://XXX.XXX.XXX.XXX:8080/plugins/blah/blah
Content-length: 11156
Cookie: JSESSIONID=<really long alpha numeric>
因此,代理工具有助于识别请求的外观

但生成此请求的唯一方法是单击网页上的按钮。我想自己发送完全相同的请求(比如创建一个自定义链接,单击该链接会生成与上面所示的请求类似的请求)。我该怎么做

此外,我在web浏览器URL区域中自动键入的任何内容都是“GET”。我如何强制推杆

Cookie:JSESSIONID=

这清楚地表明您想要使用的API不是REST API,因为它违反了REST的无状态约束

我如何强制推杆

也许你没有办法做到这一点。这取决于web API的安全设置。如果要从浏览器使用AJAX执行此操作,并且您的域与API域不同,那么您需要API中的CORS头,它允许您的域读取跨源响应。通过PUT,浏览器首先发送预飞行,如果它无法读取响应,它将永远不会发送真正的PUT。安全策略和其他头文件可以阻止浏览器中的XSS,所以您可能无法从浏览器中执行此操作

您可以通过复制请求详细信息并以某种方式捕获会话id,从服务器上执行此操作


如果API允许访问第三方客户端,那么我建议您与他们联系。如果没有,那么你99%的人认为你不能这样做。

我不明白这个问题。如果您的GUI使用HTML,那么为了发送
PUT
请求,您必须使用javascript创建一个新的XHR,并发送该请求。仅使用HTML,您就必须添加一个带有提交按钮的表单,以及一些关于http方法的变通方法。@inf3rno-我已经修改了这个问题,使之更加清晰。基本上,我对如何以用户定义链接的形式重新创建捕获的XMLHttpRequest感到困惑。
{"links":{"self":"/rest/plugins/1.0/blah/blah.....
     ... 
     ... lots and lots of JSON text
}

}