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

时间:2015-05-23 23:30:11

标签: java android http-post

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

所以,这就是我尝试过的事情:

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中连接到我的PC?我如何解析JSON响应,然后将其转换为我可以放在我的Android应用程序中的数据?如何使用此设备移动到任何地方,并从远离我的服务器的位置检索此数据?

我希望这不需要付款,我的意思是服务器毕竟是在我的电脑上。

0 个答案:

没有答案
相关问题