如何通过Java将POST Http请求发送到远程服务器上的PHP文件?

如何通过Java将POST Http请求发送到远程服务器上的PHP文件?,java,android,http-post,Java,Android,Http Post,我需要一些帮助,我以前使用过HTTP请求,但在使用AJAX时通过JavaScript,看起来很相似,但我不完全确定如何正确地完成所有这些。我看过一些人的代码和东西,但有两件事我不确定。首先,我想通过POST发送一个int,以确定应该调用哪个查询以及应该通过响应返回哪些数据。第二,我不确定URL,我需要一个域吗?我只需要连接到我机器上的服务器,我正在使用XAMPP。我不完全确定怎么做?我是否只是将URL与我的机器的IP和端口或其他东西放在一起 以下是我的尝试: public class Reque

我需要一些帮助,我以前使用过HTTP请求,但在使用AJAX时通过JavaScript,看起来很相似,但我不完全确定如何正确地完成所有这些。我看过一些人的代码和东西,但有两件事我不确定。首先,我想通过POST发送一个int,以确定应该调用哪个查询以及应该通过响应返回哪些数据。第二,我不确定URL,我需要一个域吗?我只需要连接到我机器上的服务器,我正在使用XAMPP。我不完全确定怎么做?我是否只是将URL与我的机器的IP和端口或其他东西放在一起

以下是我的尝试:

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']