如何将php curl转换为java
我希望尝试将curl转换为JAVA代码。php中的cURL代码工作得很完美,但在java中存在一个问题,这就是php代码如何将php curl转换为java,java,Java,我希望尝试将curl转换为JAVA代码。php中的cURL代码工作得很完美,但在java中存在一个问题,这就是php代码 $urlt="http://api.xxxxxxx/xxxxx"; $apikey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; $camp="id"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$urlt);
$urlt="http://api.xxxxxxx/xxxxx";
$apikey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$camp="id";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$urlt);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('apikey' => $apikey, 'apif' => 'ge', 'camp' => $camp));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
这是我对java的转换
String apikey="xxxxxxx";
String camp="17";
URL url = new URL("http://xxxxxxx/xxxxxxxx");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setInstanceFollowRedirects(true);
String postData = "apikey"+apikey+"apif=ge"+"camp"+camp; // I need somthing like this
con.setRequestProperty("Content-length", String.valueOf(postData.length()));
con.setDoOutput(true);
con.setDoInput(true);
DataOutputStream output = new DataOutputStream(con.getOutputStream());
output.writeBytes(postData);
output.close();
int code = con.getResponseCode(); // 200 = HTTP_OK
System.out.println("Response (Code):" + code);
System.out.println("Response (Message):" + con.getResponseMessage());
DataInputStream input = new DataInputStream(con.getInputStream());
int c;
StringBuilder resultBuf = new StringBuilder();
while ( (c = input.read()) != -1) {
resultBuf.append((char) c);
}
input.close();
return resultBuf.toString();
这就是我们的出路
答复(代码):200
响应(消息):OK
需要API密钥您没有正确编码参数。您缺少一个
=
和&
分隔符:
"apikey="+apikey+"&apif=ge"+"&camp="+camp
如果有一种方法让库为您进行编码,就像您在CURL示例中使用
数组(…)
,通常会安全得多。我将post转换为字符串postData=“apikey”+apikey+”&apif=ge“+”&camp=“+camp=”,但同样的问题您需要仔细注意这里的每个字符,它们都很重要“apikey=“
非“apikey”
。请更正字符和另一个问题,我将添加con.setRequestProperty(“内容类型”,String.valueOf(postData.length());这是错误的,如果成功了,请将其标记为已接受。如果你还有其他问题,那也没关系,但一定要把这些问题分开,作为单独的问题提出来,这样他们才能得到他们需要的关注。