如何模拟HTTP请求?

时间:2013-09-27 01:47:16

标签: php http jquery networking request

如何模拟HTTP请求。例如,我想模拟将数据插入我的数据库的请求,以检查我的程序的安全性和可靠性。有一些好工具吗?

5 个答案:

答案 0 :(得分:4)

对于* nix操作系统,您可以使用 telnet curl wget utilites:

<强>远程登录

user@host:~$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /api.php?param1=10&param2=20 HTTP/1.1   # here is your request params
Host: localhost                             # required HTTP header
                                            # double ENTER for sending request

检查操作系统的telnet man-page以获取高级选项。

<强>卷曲:

user@host:~$ curl \
--header 'Host: localhost' \
--user-agent 'Mozilla/5.0 (Linux x86_64; rv:10.0.12) Gecko/ Firefox/10.0.12' \
--no-keepalive \
http://localhost/api.php?param1=10&param2=20

检查操作系统的curl man-page以获取高级选项。

<强> Wget的:

user@host:~$ wget http://localhost/api.php?param1=10&param2=20

检查操作系统的wget man-page以获取高级选项。

FYI 如果您选择 curl ,那么您将允许使用* nix shell的强大功能: grep sed output redirection以及许多其他有用的东西。

答案 1 :(得分:1)

如果你想从服务器端尝试cURL绝对是最简单的方法。由于您使用PHP标记了此问题,因此这是一个模拟POST请求的简单PHP脚本。

<?php
$url = "http://yoursite.com/yourscript.php";
$postdata = array (
    "name" => "Joe",
    "address" => "Some street",
    "state" => "NY",
);

$req = curl_init($url);
curl_setopt($req, CURLOPT_POST, true);
curl_setopt($req, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($req, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($req);

如果您想尝试来自浏览器的请求,Chrome和Firefox都有非常好的扩展程序。例如(对于chrome)POSTMANAdvanced REST client

答案 2 :(得分:1)

为了测试您的PHP应用程序,您可以使用如下的测试框架:SimpleTest

<?php
require_once('simpletest/browser.php');

$browser = &new SimpleBrowser();
$browser->get('http://php.net/');
$browser->click('reporting bugs');
$browser->click('statistics');
$page = $browser->click('PHP 5 bugs only');
preg_match('/status=Open.*?by=Any.*?(\d+)<\/a>/', $page, $matches);
print $matches[1];
?>

答案 3 :(得分:1)

HTTPie由一个“ http ”命令组成,该命令专为无痛调试和与HTTP服务器,RESTful API和Web服务的交互而设计。它可以在所有平台上使用。

使用Github API发布有关身份验证问题的评论:

$ http -a USERNAME POST https://api.github.com/repos/jkbrzt/httpie/issues/83/comments body='HTTPie is awesome! :heart:'

答案 4 :(得分:0)

我认为您可以在https://w3webtool.com/http-request-method尝试HTTP请求

您可以填写参数并模拟您的http请求方法。