我正在开发一个使用HTTP与服务器通信的软件(但它不是Web浏览器)。由于服务器部分尚未就绪,我想通过向其发送HTTP消息来调试我的客户端软件。我知道我可以使用Curl发送HTTP请求。但我不确定这是否足够。
我正在想象一个环境,我从我的应用程序发送请求,使用Wireshark检查它是否正确,然后使用某些软件回复请求。使用Curl,我想我会打开一个监听端口..?
答案 0 :(得分:1)
你不能用cURL做到这一点。它是一个http 客户端,而不是服务器。
最简单的方法是实际实现一个模拟服务器应用程序,每次只返回一个静态(即硬编码)消息。您可以使用您喜欢的任何服务器端语言(php,python,ruby,...)来执行此操作,或者,您甚至可以在没有服务器端语言的情况下执行此操作,只使用由web服务器(如apache或nginx)提供的静态文件
例如,如果服务器部分(API)将使用相关内容(包含某些文章的JSON对象)响应/articles.json
,则可以放置一个名为articles.json
的文件,其中包含一些手 - 在服务器的根目录中写入数据。然后,当您的应用程序实际上只是下载静态文件时,它会认为它正在调用API。
答案 1 :(得分:1)
我会使用一个简单的node.js服务器。您可以在几行代码中编写自己的HTTP服务器,轻松模拟各种返回码,响应头或响应实体:http://nodejs.org/
PS:有些代理只打印出HTTP消息。这也可能对您有所帮助,因为您不再需要处理WireShark仅用于HTTP级别的日志记录。
答案 2 :(得分:0)
您可以使用firefox浏览器的firebug插件来查看HTTP请求/响应的内容。 它不需要任何服务器(当然,如果你没有服务器处理来自浏览器的请求并向浏览器发送响应,你将总是看到响应“无法连接”)。
如果你仍然需要模拟响应,你可以创建一个简单的服务器,它能够响应模拟响应,例如tomcat服务器上的java servlet,代码如下:
public class MyMockServlet extends HttpServlet { .. private String mockHeaders = "..."; private String mockResponse = "my response"; public void service(HttpRequest request, HttpResponse response){ setHeaderAndBodyInResponse(response);//your method } }