我想在我正在工作的web应用程序中测试一些url。为此,我想手动创建HTTP POST请求(这意味着我可以添加任何我喜欢的参数)。

Chrome和/或Firefox中是否有我遗漏的功能?


当前回答

这个问题现在已经12年了,很容易理解为什么作者在当时要求Firefox或Chrome的解决方案。12年后,也出现了其他浏览器,其中最好的不涉及任何附加组件或额外工具的浏览器是Microsoft Edge。

只需打开devtools (F12),然后是网络控制台选项卡(不是网络或控制台选项卡)。如果它不可见,请单击+号并打开它)。

下面是官方指南: https://learn.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium/network-console/network-console-tool

玩得开心!

其他回答

您还可以使用Watir或WatiN来自动化浏览器。Watir是为Ruby编写的,而Watin是为。net语言编写的。但我不确定这是否是你要找的。

http://watin.sourceforge.net/ http://watir.com/

这是Chrome的高级REST客户端扩展。

它对我来说工作得很好——请记住,您仍然可以使用它的调试器。Network窗格特别有用;它会给你呈现JSON对象和错误页面。

因此,我突然想到,您可以使用控制台,创建一个函数,并轻松地从控制台发送请求,其中将有正确的cookie等。

所以我在这里找到了这个:https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#supplying_request_options

// Example POST method implementation:
async function postData(url = '', data = {}, options = {}) {
  // Default options are marked with *
let defaultOptions = {
    method: 'POST', // *GET, POST, PUT, DELETE, etc.
    mode: 'cors', // no-cors, *cors, same-origin
    cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
    credentials: 'same-origin', // include, *same-origin, omit
    headers: {
      'Content-Type': 'application/json'
      // 'Content-Type': 'application/x-www-form-urlencoded',
    },
    redirect: 'follow', // manual, *follow, error
    referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
    body: JSON.stringify(data) // body data type must match "Content-Type" header
  }

// update the default options with specific options (e.g. { "method": "GET" } )
const requestParams = Object.assign(defaultOptions, options);

const response = await fetch(url, requestParams);
  return response.text(); // displays the simplest form of the output in the console. Maybe changed to response.json() if you wish
}

如果你想GET请求,你可以把他们放在你的浏览器地址栏!

如果你把它粘贴到你的控制台,那么你可以通过重复调用你的函数来发出POST请求,就像这样:

postData('https://example.com/answer', { answer: 42 })
  .then(data => {
    console.log(data); // you might want to use JSON.parse on this
  });

服务器输出将打印在控制台中(以及网络选项卡中可用的所有数据)

这个函数假设您正在发送JSON数据。如果不是,则需要更改它以满足您的需要

CURL非常棒,可以做任何您想做的事情!这是一个简单但有效的命令行工具。

REST实现测试命令:

curl -i -X GET http://rest-api.io/items
curl -i -X GET http://rest-api.io/items/5069b47aa892630aae059584
curl -i -X DELETE http://rest-api.io/items/5069b47aa892630aae059584
curl -i -X POST -H 'Content-Type: application/json' -d '{"name": "New item", "year": "2009"}' http://rest-api.io/items
curl -i -X PUT -H 'Content-Type: application/json' -d '{"name": "Updated item", "year": "2010"}' http://rest-api.io/items/5069b47aa892630aae059584

您可以使用ReqBin直接从浏览器发出请求。 不需要插件或桌面应用程序。