如何通过Java将POST Http请求发送到远程服务器上的PHP文件?
我需要一些帮助,我以前使用过HTTP请求,但在使用AJAX时通过JavaScript,看起来很相似,但我不完全确定如何正确地完成所有这些。我看过一些人的代码和东西,但有两件事我不确定。首先,我想通过POST发送一个int,以确定应该调用哪个查询以及应该通过响应返回哪些数据。第二,我不确定URL,我需要一个域吗?我只需要连接到我机器上的服务器,我正在使用XAMPP。我不完全确定怎么做?我是否只是将URL与我的机器的IP和端口或其他东西放在一起 以下是我的尝试:如何通过Java将POST Http请求发送到远程服务器上的PHP文件?,java,android,http-post,Java,Android,Http Post,我需要一些帮助,我以前使用过HTTP请求,但在使用AJAX时通过JavaScript,看起来很相似,但我不完全确定如何正确地完成所有这些。我看过一些人的代码和东西,但有两件事我不确定。首先,我想通过POST发送一个int,以确定应该调用哪个查询以及应该通过响应返回哪些数据。第二,我不确定URL,我需要一个域吗?我只需要连接到我机器上的服务器,我正在使用XAMPP。我不完全确定怎么做?我是否只是将URL与我的机器的IP和端口或其他东西放在一起 以下是我的尝试: public class Reque
public class Request {
private static Request instance;
private static String URL;
private String requestResult;
private String error;
private Request(){
this.URL = "http://IPAddress or Server Address/Android Webservice/webservice.php"; /* not sure what I should use here, I'm using an apache server */
this.error = new String();
this.requestResult = new String();
}
public static Request getRequest(){
if(instance == null){
instance = new Request();
}
return instance;
}
public void sendHttpPostRequest(String option){
HttpClient client = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(URL);
HttpResponse serverResponse;
String jsonToSend = "message={identifer:" + option + "}";
NameValuePair parameter = new BasicNameValuePair("data", jsonToSend);
try {
StringEntity entity = new StringEntity(jsonToSend);
postRequest.addHeader("content-type", "application/x-www-form-urlencoded");
postRequest.setEntity(entity);
serverResponse = client.execute(postRequest);
} catch (Exception e){
}
}
public String getURL() {
return this.URL;
}
public String getResult(){
return this.requestResult;
}
}
我把它放在一个类中,因为我希望能够在任何地方调用它,而且我需要在我的android应用程序中的多个视图中调用它。我想说这里最重要的部分是` sendHttpPostRequest'。然而,我不知道如何使用该响应来做任何事情。通常使用AJAX时,我只需要得到响应文本并从那里开始,但这在这里不起作用。我看过各种各样的例子,但我很难得到它们,其中一些做了很多我不确定我需要的东西
例如,这是我的PHP文件:
<?php
$obj = json_decode($_POST['message']);
$obj = json_decode($dataReceived,true);
$data = array("data","some other data","the last piece of data");
json_encode('data'=>$data);
echo $data;
?>
现在看起来是这样的,因为这是一个简单的测试,但最终目标应该是返回一个关联数组,该数组将是来自数据库的查询结果。我知道如何轻松地做到这一点,但我不确定如何发送请求以获取该文件以返回该文件。我不知道如何在Java中解析JSON,尤其是关联数组,而且我也不确定我的服务器应该如何配置以允许来自android设备的连接
那么,要连接到我的电脑,需要在URL中输入什么内容呢?我如何解析JSON响应,然后将其转换为可以放入android应用程序的数据?如何使用此设备移动到任何地方,并从远离服务器的位置检索此数据
我希望这不需要任何形式的付款,我的意思是服务器毕竟在我的电脑上 所以。。。问题是…?在这里用Java下载文件很好。不幸的是,我不需要下载,我需要从数据库获取数据。基本上我只需要一个表中SELECT语句的内容代码>。不可以。您应该使用
参数
。并将$\u POST['message']
更改为$\u POST['data']
。