将php post请求重新写入java Android post请求(并获取响应)
我想从android应用程序创建此post请求,并获得json响应:将php post请求重新写入java Android post请求(并获取响应),java,php,android,curl,post,Java,Php,Android,Curl,Post,我想从android应用程序创建此post请求,并获得json响应: function send_post_to_url($url,$post) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch,CURLOPT_POST, 1); c
function send_post_to_url($url,$post) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$return = curl_exec($ch);
curl_close($ch);
return $return;
}
$data['api_key'] = YOUR_API_KEY;
$data['action'] = 'TestFunction';
$response = send_post_to_url('https://api.superget.co.il/',$data);
echo $response;
我该怎么做
我已尝试了以下操作,但connect不断抛出异常
HttpURLConnection urlConnection;
urlConnection = (HttpURLConnection) ((new URL("https://api.superget.co.il").openConnection()));
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.setRequestProperty("Content-Type", "application/json");
urlConnection.setRequestProperty("Accept", "application/json");
urlConnection.setRequestMethod("POST");
urlConnection.connect();
试试我的代码:
sendPost方法:
public boolean sendPost(Map<String, Object> params, String urlAddress) {
URL url;
HttpURLConnection urlConnection = null;
try {
StringBuilder postData = new StringBuilder();
for (Map.Entry<String, Object> param : params.entrySet()) {
if (postData.length() != 0) postData.append('&');
postData.append(URLEncoder.encode(param.getKey(), "UTF-8"));
postData.append('=');
postData.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
byte[] postDataBytes = postData.toString().getBytes("UTF-8");
url = new URL(urlAddress);
urlConnection = (HttpURLConnection) url.openConnection();
//urlConnection.setReadTimeout(10000 /* milliseconds */);
//urlConnection.setConnectTimeout(15000 /* milliseconds */);
//add reuqest header
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConnection.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
urlConnection.setRequestProperty("charset", "utf-8");
//urlConnection.setUseCaches( false );
//urlConnection.setInstanceFollowRedirects( false );
urlConnection.setDoOutput(true);
// Send post request
DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream());
wr.write(postDataBytes); //wr.writeBytes(postData.toString());
wr.flush();
wr.close();
//urlConnection.getOutputStream().write(postDataBytes);
/*
int responseCode = urlConnection.getResponseCode();
Log.e("ddd", "\nSending 'POST' request to URL : " + url);
Log.e("ddd", "Post parameters : " + postData.toString());
Log.e("ddd", "Response Code : " + responseCode); */
String response = "";
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));
String inputLine;
while ((inputLine = in.readLine()) != null)
response += inputLine;
in.close();
//get response
return response.trim().equals("ok");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (urlConnection != null)
urlConnection.disconnect();
}
return false;
}
返回类型必须是JSONObject尝试android的任何库。例如,它不适用于我,在使用“action”初始化映射实例后,我从服务器收到一个响应,他无法识别我的action@AndoridBegginer响应结果是什么?敬酒或记录
回应
并对我说。
Map<String, Object> params = new HashMap<>();
params.put("param1", txtContactNf.getText().toString());
params.put("param2", txtContactNf.getText().toString());
final boolean successSend = nu.sendPost(params, "http://yoursite.com/api.php");
String response = "";
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));
String inputLine;
while ((inputLine = in.readLine()) != null)
response += inputLine;
in.close();
if(response.equals("no")) return null;
return new JSONObject(response);