本帖最后由 yangc_83 于 2010-05-19 11:16:25 编辑

解决方案 »

  1.   

    采用APACHE的HTTPCLIENT试试看,给你一个提交表单的例子package http.demo; 
    import org.apache.commons.httpclient.*;
    import org.apache.commons.httpclient.cookie.*;
    import org.apache.commons.httpclient.methods.*; /** 
     * 用来演示登录表单的示例 
     * @author Liudong 
     */ 
    public class FormLoginDemo {
       static final String LOGON_SITE = "192.168.1.169" ;
       static final int     LOGON_PORT = 1234;   public static void main(String[] args) throws Exception{
          HttpClient client = new HttpClient();
          client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);      // 模拟登录页面 login.jsp->main.jsp
          PostMethod post = new PostMethod( "/main.jsp" );
          NameValuePair name = new NameValuePair( "name" , "ld" );
          NameValuePair pass = new NameValuePair( "password" , "ld" );
          post.setRequestBody( new NameValuePair[]{name,pass});
          int status = client.executeMethod(post);
          System.out.println(post.getResponseBodyAsString());
          post.releaseConnection();      // 查看 cookie 信息
          CookieSpec cookiespec = CookiePolicy.getDefaultSpec();
          Cookie[] cookies = cookiespec.match(LOGON_SITE, LOGON_PORT, "/" , false , client.getState().getCookies());
          if (cookies.length == 0) {
             System.out.println( "None" );
          } else {
             for ( int i = 0; i < cookies.length; i++) {
                System.out.println(cookies[i].toString());
             }
          }      // 访问所需的页面 main2.jsp 
          GetMethodget=newGetMethod("/main2.jsp");
          client.executeMethod(get);
          System.out.println(get.getResponseBodyAsString());
          get.releaseConnection();
       }
    }
      

  2.   

    因为我需要在j2me上用http来连接这个服务,也有问题。
    所以想用jsp用http来实现连接,看下数据
    j2me没有httpclient。
      

  3.   

    如果返回一串字母的话应该不至于要用流来处理lz何不试试用
    String result = conn.getResponseMessage();另外,很久没用过HttpURLConnection这种东西了,好像记得conn.getResponseCode()这个方式会去请求一次server,而lz第二次调用conn.getInputStream()的时候又去请求了一次server,产生了不必要的连接.好像是这样,记不清了,如果说错了,抱歉.
      

  4.   

    如果httpServer确实是在Stream中返回字符串的话,可能是因为编码问题造成in.read()未读取到结束标志
      

  5.   

    网上的说法:
    1,网络编程时未正确捕获java.net.SocketException,客户端先关闭就会报这个异常;
    2,数据库和应用服务器的网段不同.b。好像说防火墙的比较多。
    大部分是网络的原因。提交post的东西多,然后服务器接收就超时了c。如果weblogic server和数据库服务器不在同一台主机,会经常有这种情况。
    d。从根本上说是weblogic sp2的buge。一般是有些客户端已关闭,一些线程因为延迟等原因觉察不到此连接已结束,继续等到到出错或是 客户端那里不停刷或一个访问/刷新没完成前再刷,要让这个无用的线程死掉和这个错误如果不影响应用运行的话大可不必理会。有一种抛出这个异常的情况是:
    浏览器请求了一个服务器端资源,在响应回来之前转而请求其他的资源。这个时候最初的浏览器跟服务器的连接中断,服务器的peer程序就会reset那个connection。
      

  6.   

    注意协议 http请求协议头是有格式的噢。