我用Java实现了一个REST服务:
@POST
@Path("/policyinjection")
@Produces(MediaType.APPLICATION_JSON)
public String policyInjection(String request) {
String queryresult = null;
String response = null;
if (request == null) {
logger.warning("empty request");
} else {
//call query() to query redisDB with the request
queryresult = query(request);
// call inject() to inject returned policy to floodlight
response = inject(queryresult);
}
return response;
}
但是我需要使用Python来实现客户机对上述服务发出POST请求。 我是python新手,我想实现一个方法,如下所示:
^{pr2}$
我专门为此制作了Nap,看看吧!在
用法示例:
更多示例:https://github.com/kimmobrunfeldt/nap#examples
我不确定这是否是您的问题的答案,但是您应该看看^{} 模块。在
它允许在一行中发送http POST请求(以及(m)任何其他http方法):
现在,答案在
^{pr2}$r
对象中:。。。这些只是例子。有关详细信息,请参阅请求文档response content。在
您可以使用
requests
库。我不谈这个,因为已经有人回答了。在也可以使用urllib和urllib2:
urllib2.urlopen
的secode参数是与请求一起发送的数据。它是可选的,但是如果您使用它,您的请求将自动变为POST。urllib
与其他解决方案相比的优势在于它是标准发行版的一部分,因此您不会向应用程序添加任何额外的依赖项。在如果您想要性能,您应该使用
^{pr2}$pycurl
:不幸的是,}来安装它。在
pycurl
不是标准发行版的一部分,但是您可以使用pip install pycurl
或{相关问题 更多 >
编程相关推荐