2

我的意思是我想向我的服务器发送一个 http 请求,例如:

http://blahblah.blah/index.php ?command=make

在安卓中

4

2 回答 2

4

你可以这样做:

发帖:

public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://blahblah.blah/index.php");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
        nameValuePairs.add(new BasicNameValuePair("command", "make"));        
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
} 

Http 获取

HttpResponse response = null;
try {    
        // Create http client object to send request to server     
        HttpClient client = new DefaultHttpClient();
        // Create URL string
        String URL = "http://blahblah.blah/index.php?command=make";
        // Create Request to server and get response
        HttpGet httpget= new HttpGet();
        httpget.setURI(new URI(URL));
        response = client.execute(httpget);
    } catch (URISyntaxException e) {
        e.printStackTrace();
    } 
    catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
于 2013-08-22T14:41:33.820 回答
1

您只需将 URL 设置为使用 URL Connection 时的 URL 即可

// you can pass mUrl as http://blahblah.blah/index.php?command=make and if you are expecting a returned value, you can compare that with successVal

public static boolean checkSuccess(String mUrl, String successVal)
{
    InputStream is = null;
    try
    {
        URL url = new URL(mUrl);
        URLConnection ucon = url.openConnection();
        ucon.setConnectTimeout(5000);
        ucon.setReadTimeout(5000);
        is = ucon.getInputStream();
        BufferedInputStream bis = new BufferedInputStream(is, 8192);
        ByteArrayBuffer baf = new ByteArrayBuffer(300);
        int current = 0;
        while ((current = bis.read()) != -1)
        {
            baf.append((byte) current);
        }
        String success = new String(baf.toByteArray());

        return success.equals(successVal);
    }
    catch (Exception e)
    {
        return false;
    }
    finally
    {
        try
        {
            if (is != null)
            {
                is.close();
            }
        }
        catch (Exception e)
        {
        }
    }
}
于 2013-08-22T14:41:58.560 回答