0

这是我验证用户名和密码的 javascript 代码。我可以在 android 中执行 HttpRequest 以相同的方式验证用户名和密码吗?任何例子都会非常感激。

URL 包含用户名和密码。

https://url.com/getdata?username=abcd123&password=123456

var req = new XMLHttpRequest();
req.open("POST", url, true);

req.onreadystatechange = function ()
{
    if (req.readyState != 4) return;
    if (req.status != 200 && req.status != 304)
    {
        return;
    }
    console.log(req.responseText);
};
4

2 回答 2

2

使用Android 异步 Http 客户端。它非常易于使用,并且不会让您为使用DefaulHttpClient等需要做的一些事情而烦恼。下面是你如何做一个 POST:

RequestParams params = new RequestParams();
params.put("username", "abcd123");
params.put("password", "123456");

AsyncHttpClient client = new AsyncHttpClient();
client.post("https://url.com/getdata", params, new AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(String response) {
        // success
    }

    @Override
    public void onFailure(Throwable error, String content) {
        // something went wrong
    }
});

GET 很简单:

AsyncHttpClient client = new AsyncHttpClient();
client.post("https://url.com/getdata?username=abcd123&password=123456", new AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(String response) {
        // success
    }

    @Override
    public void onFailure(Throwable error, String content) {
        // something went wrong
    }
});
于 2013-06-09T21:53:27.553 回答
1

你可以这样做:

    private static String httpClient(String url) throws Exception{
    BufferedReader in = null;
    try {
        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet();
        request.setURI(new URI(url));
        HttpResponse response = client.execute(request);
        in = new BufferedReader
                (new InputStreamReader(response.getEntity().getContent()));
        StringBuffer sb = new StringBuffer("");
        String line = "";
        while ((line = in.readLine()) != null) {
            sb.append(line);
        }
        in.close();
        return sb.toString();
    } finally {
        if (in != null) {
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
于 2013-06-09T21:53:17.907 回答