0%

Java用apache的HttpClient发送Get请求

发送POST请求方法参考http://www.pocketdigi.com/20110521/294.html 相对于POST,接收文件稍稍修改一下:

<?php
@$usr=$_GET['usr'];
@$pwd=$_POST['pwd'];
echo $usr;
echo $pwd;
?>

当然,在实际项目中,没有特别需要,不会用GET接收用户名,同时用POST接收密码,我这只是能用POST和GET的例子都能正常运行。 Java Get的代码,与Post类似

package com.pocketdigi;

import java.io.UnsupportedEncodingException;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
/**
*JDK默认没有org.apache.http包,需要先去http://hc.apache.org/downloads.cgi下载
*下载HttpClient,解压,在Eclipse中导入所有JAR
*/
public class Main {
    /**
     * @param args
     * @throws UnsupportedEncodingException 
     * 这个例子为了简单点,没有捕捉异常,直接在程序入口加了异常抛出声明
     */
    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        String url="http://localhost/newspaper/test/1.php?usr=156gs";
        //GET的URL,参数直接加URL后
        HttpGet httpget=new HttpGet(url);
        //建立HttpPost对象
        HttpResponse response=new DefaultHttpClient().execute(httpget);
        //发送GET,并返回一个HttpResponse对象,相对于POST,省去了添加NameValuePair数组作参数
        if(response.getStatusLine().getStatusCode()==200){//如果状态码为200,就是正常返回
            String result=EntityUtils.toString(response.getEntity());
            //得到返回的字符串
            System.out.println(result);
            //打印输出
        }
    }
}