`

Httpclient向远程服务发送请求并得到返回值

 
阅读更多
package hasau;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.conn.params.ConnRouteParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

/**
 *
 * @author    hasau 
 * 2010-11-5  上午09:51:25
 */
public class httpclientStudy {
  public static void main(String[] args) throws Exception {
//   javaHttpClient1();
   httpClientCookies();
   
  }
  
  
  private static void httpClientCookies() throws Exception{
   HttpClient httpClient = new DefaultHttpClient();
   HttpContext httpContext = new BasicHttpContext();
   HttpGet get = new HttpGet("http://localhost:8080/sgcms/back/logout.do");
   HttpResponse httpResponse = httpClient.execute(get, httpContext);
   HttpEntity entity = httpResponse.getEntity();
   String charSet = null;
   if(entity!=null){
    charSet = EntityUtils.getContentCharSet(entity);
    System.out.println(charSet);
    InputStream is = entity.getContent();
    BufferedReader  br = new BufferedReader(new InputStreamReader(is,"utf-8"));
    String text = null;
    String line = br.readLine();
    StringBuffer sb = new StringBuffer();
    while(line != null){
     sb.append(line+"\n");
     line = br.readLine();
    }
    is.close(); 
   }
   
   HttpPost httpPost = new HttpPost("http://localhost:8080/sgcms/back/ajaxJsonLogin.do'");
   List<NameValuePair> list = new ArrayList<NameValuePair>();
   list.add(new BasicNameValuePair("admin.loginName","hasau"));
   list.add(new BasicNameValuePair("admin.passwordMd5","hasau"));
   list.add(new BasicNameValuePair("admin.authCode",""));
   httpPost.setEntity(new UrlEncodedFormEntity(list,charSet));
   httpResponse = httpClient.execute(httpPost);
   entity = httpResponse.getEntity();
   if(entity != null){
    InputStream is = entity.getContent();
    BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
    String line = br.readLine();
    String text = null;
    StringBuffer sb = new StringBuffer();
    while(line != null){
     sb.append(line+"\n");
     line=br.readLine();
    }
    System.out.println(sb.toString());
   }
   
   httpClient.getConnectionManager().shutdown();
  }
  private static void javaHttpClient1() throws ClientProtocolException, IOException{
   HttpClient httpClient = new DefaultHttpClient();
   httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, new HttpHost("121.12.249.207",3128));
   HttpGet get =new HttpGet("http://www.baidu.com");
   HttpContext context = new BasicHttpContext();
   HttpResponse response = httpClient.execute(get,context);
   HttpHost target = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST);//http://localhost:8080
   HttpUriRequest request = (HttpUriRequest) context.getAttribute(ExecutionContext.HTTP_REQUEST);// cms/back/hasau.jsp
   
   
   HttpEntity entity = response.getEntity();
   String charset = EntityUtils.getContentCharSet(entity);
   System.out.println(charset);
   if(entity!=null){
    InputStream is = entity.getContent();
    BufferedReader buf = new BufferedReader(new InputStreamReader(is,"gbk"));
    String content="";
    String line = buf.readLine();
    while(line!=null){
     content += line+"\n";
     line=buf.readLine();
      
    }
    System.out.println(content);
    is.close();
   }
   httpClient.getConnectionManager().shutdown();
   
  }
  
  private static void javaNetJsoup() throws IOException  {
   String key = "http://www.baidu.com";
   URL url = new URL(key);
   Proxy proxy = new Proxy(Proxy.Type.HTTP,new InetSocketAddress("192.168.12.32",80));
   
   HttpURLConnection con = (HttpURLConnection)url.openConnection(proxy);
   con.setFollowRedirects(false);
   con.setRequestMethod("GET");
   BufferedReader buf = new BufferedReader(new InputStreamReader(con.getInputStream(),"gbk"));
   
   InputStream in = url.openStream();
   buf = new BufferedReader(new InputStreamReader(in,"gbk"));
   String line = buf.readLine();
   String content = "";
   while(line!=null){
    content +=line;
    line=buf.readLine();
   }
   in.close();
   System.out.println(content);  
   
   Document document = Jsoup.parse(url, 1000*10);
   System.out.println(document.html());
  }
}

 

分享到:
评论

相关推荐

    Java访问.Net Webservice 通过httpclient SOAP实现

    5. **执行请求并处理响应**:通过HttpClient的execute方法发送请求,然后获取HttpRespose对象。从响应中,我们可以读取HTTP状态码和响应体。对于SOAP,响应通常也是一个XML格式的SOAP消息,需要解析这个消息以获取...

    致远OA开发REST远程接口实现发送表单

    3. **发起请求**:使用Java的HTTP客户端库,如Apache HttpClient或者Java内置的HttpURLConnection,向配置好的REST接口发送请求。在这个过程中,你需要设置HTTP头信息,比如Content-Type(通常为application/json)...

    远程请求url,发送xml参数,返回结果值的2个方法

    在IT行业中,远程请求URL并发送XML参数是常见的数据交互方式,主要应用于Web服务、API接口调用等场景。下面将详细介绍两种实现这一操作的方法,并结合`SyncDemo`这一示例进行阐述。 方法一:使用Java的...

    mock:httpclient用例

    在IT行业中,Mock和HTTPClient是两个非常关键的概念,...Mocking帮助我们创建可靠的测试环境,而HTTPClient则提供了一种高效的方式与远程服务器进行通信。通过学习和实践,我们可以提升代码质量,确保项目稳定运行。

    C#通过HTTP协议get、post Webservice,并返回数据

    POST请求用于向服务器发送数据,通常用于创建新资源或更新已有资源。执行POST请求的步骤如下: - 创建HttpWebRequest实例,设置URL属性。 - 设置RequestMethod为"POST"。 - 设置ContentType属性,如...

    SpringCloud 集成Nacos、Feign,Feign采用httpClient方式

    5. 使用Feign客户端:在业务代码中,通过Feign接口调用远程服务,Feign会自动处理请求的构建、发送和响应的解析。 集成Nacos和Feign后,我们可以实现以下优势: 1. 动态配置:通过Nacos,服务的配置可以实时更新,...

    Apache Camel框架 HTTP相关的jar包

    例如,你可以配置一个路由,当接收到特定的消息时,使用HTTP客户端向远程服务器发起请求,并处理返回的数据。以下是一个简单的Camel路由示例,展示了如何使用HTTP组件: ```java from("direct:start") .setHeader...

    WebService远程访问SQLServer数据库源码

    4. 将结果返回给客户端:将查询结果转换为XML或自定义数据结构,通过返回值发送回客户端。 5. 在客户端调用WebService:使用.NET的HttpClient或SoapHttpClient类,根据WSDL定义调用WebService方法,获取并处理返回...

    调用远程API规范 XINS

    - **返回值**: 功能执行后可能会产生一个或多个返回值,这些返回值表示了功能执行的结果状态和可能的数据输出。 ### 2. XCAP (XINS Capabilities Protocol) XINS使用XCAP(XINS Capabilities Protocol)作为其通信...

    java调用webservice工程

    - **调用服务方法**:通过代理类的实例调用Web服务提供的方法,传递参数并接收返回值。 **3. 使用JAX-WS的步骤** - **定义服务接口**:在Java中定义一个接口,这个接口对应于WebService的服务端点接口(SEI)。 ...

    Android开发之WebService介绍

    2. 发送请求:使用HttpURLConnection或Apache HttpClient库发送SOAP请求到WebService的URL。 3. 处理响应:接收并解析SOAP响应,通常是XML格式,然后转换为相应的Java对象。 4. 显示结果:将解析后的数据展示在...

    用Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)

    2. **发送SOAP请求**:使用Java的HTTP客户端(如Apache HttpClient或Java自带的URLConnection)将SOAP请求发送到目标服务器。 3. **处理SOAP响应**:服务器收到请求后,根据SOAP消息的内容执行相应的逻辑处理,最后...

    jsonrpc-1.0.jar

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,主要用来在客户端和服务器之间进行数据交换。它的设计思想是简单、直接,以JSON(JavaScript Object Notation)作为...

    android webService

    在Android开发中,Web服务(通常指WebService)是一种允许应用程序之间进行交互的技术,它使得移动应用,如Android应用,能够与远程服务器进行数据交换。在本案例中,开发者遇到了一个常见的问题:`java.lang....

    Software caused connection abort: recv failed

    1. **客户端向服务端发起请求**:客户端通过建立的TCP连接向服务端发送数据。 2. **服务端处理并响应**:服务端接收到请求,进行相应的业务处理,然后将响应数据回传给客户端。 3. **服务端关闭连接**:在某些设计...

    springMVC-mybatis多数据源配置及访问接口上传文件

    ### HttpClient远程接口文件上传 1. **HttpClient介绍**:Apache HttpClient是一个强大的HTTP客户端库,用于执行HTTP请求。它支持多种HTTP方法如GET、POST、PUT,还可以处理文件上传、超时、重试等复杂需求。 2. *...

    Accessing Web Services from a Visual Web Application

    这些方法使用Java对象作为参数和返回值,对象会被自动转换为SOAP消息进行发送和接收。在Visual Web应用中,可以在JSF页面或后台Bean中直接调用这些方法。 **5. 使用RESTful Web服务** 对于RESTful服务,通常使用...

    eSDK UC V100R005C10 代码样例 01(UC2.2,REST)

    这些接口涵盖了语音、视频、消息等多种通信功能,适用于企业内部协作、客户服务、远程办公等场景。 2. **UC2.2服务端接口** UC2.2服务端接口是eSDK UC中的一组关键接口,主要用于服务端与客户端之间的通信。这些...

    webservice 所需要的jar包

    - **调用Web服务**:通过代理类的方法调用Web服务的相应操作,传入参数并接收返回值。 5. **其他可能需要的jar包**: 在实际应用中,除了axis.jar和wsdl4j.jar,可能还需要其他依赖,例如用于处理XML的JAXB库...

Global site tag (gtag.js) - Google Analytics