![](/img/trans.png)
[英]How to post parameters to java servlet using curl from php page?
[英]Recieve variables in java Web Service from php cURL using POST?
我在Params上收到“ null”。 到目前为止,我发现人们在Java上使用“ PathParams”,“ FormParams”和“ QueryParams”从请求中获取变量,但是在我的情况下,使用post我没有PathParams,由于某种原因,FormParams和QueryParams返回了null好像我从未发送过它们。 所以我想帮助解决这个问题。
我的php cURL POST请求:
<?php
$url = "http://localhost:8080/TestRest/test/asd";
$params = "param1=val1¶m2=val2";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
我的Java Web服务:
@Path("/test")
public class Streams {
@POST
@Path("/asd")
@Produces(MediaType.TEXT_PLAIN)
@Consumes({"application/x-www-form-urlencoded"})
public String addStream(@FormParam("param1") String param1,
@FormParam("param2") String param2) {
return "param1 = "+param1;
}
}
由于某些原因,param1为空。 我究竟做错了什么?
我四肢冒昧地说您的问题可能源于此:
urlencode($params);
例如: a=1&b=2&c=3
是完全有效的。
urlencode('a=1&b=2&c=3')
转到此: a%3D1%26b%3D2%26c%3D3
,您的网络服务可能不了解您正在传递的内容。 它正在寻找a=...&b=...&c=...
而您没有给出任何。
尝试放弃urlencode()
并查看它是否有效。 如果是这样,你还是要确保内容像this&this
被正确编码,那么你就需要解析URL参数,编码它们,然后重新组合它们为POST数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.