解决方案 »

  1.   

    address 直接定义成全局变量 不就行了?
      

  2.   


    全局变量也是空的,因为不是在一个线程里面,解决方法是:
    public static String getAddress (final InputStream inputStream, final String mobile) {
                Thread thread = new Thread() {
                       public void run() {
                             try {
                                  Log. i(TAG, "inputStream: " + inputStream.available());
                                  String soap = readSoapFile(inputStream, mobile);
                                   byte[] data = soap.getBytes();                              URL url = new URL(
                                               "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx" );
                                  HttpURLConnection conn = (HttpURLConnection) url
                                              .openConnection();
                                  conn.setDoOutput( true);
                                  conn.setConnectTimeout(5 * 1000);
                                  conn.setRequestMethod( "POST");
                                  conn.setRequestProperty( "Content-Type",
                                               "application/soap+xml; charset=utf-8");
                                  conn.setRequestProperty( "Content-Length",
                                              String. valueOf(data.length));                               OutputStream outputStream = conn.getOutputStream();
                                  outputStream.write(data);
                                  outputStream.flush();
                                  outputStream.close();
                                  
                                   if (conn.getResponseCode() == 200) {
                                         address =parseResponseXML(conn
                                                    .getInputStream()); 
                                  }
                            } catch (Exception e) {
                            }
                      };
                };
                thread.start();
                 try { thread.join(); } catch (Exception e) {}
                 if(address !=null){
                       return address ;
                }
                 return null ;
          }
      

  3.   


    全局变量也是空的,因为不是在一个线程里面,解决方法是:
    public static String getAddress (final InputStream inputStream, final String mobile) {
                Thread thread = new Thread() {
                       public void run() {
                             try {
                                  Log. i(TAG, "inputStream: " + inputStream.available());
                                  String soap = readSoapFile(inputStream, mobile);
                                   byte[] data = soap.getBytes();                              URL url = new URL(
                                               "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx" );
                                  HttpURLConnection conn = (HttpURLConnection) url
                                              .openConnection();
                                  conn.setDoOutput( true);
                                  conn.setConnectTimeout(5 * 1000);
                                  conn.setRequestMethod( "POST");
                                  conn.setRequestProperty( "Content-Type",
                                               "application/soap+xml; charset=utf-8");
                                  conn.setRequestProperty( "Content-Length",
                                              String. valueOf(data.length));                               OutputStream outputStream = conn.getOutputStream();
                                  outputStream.write(data);
                                  outputStream.flush();
                                  outputStream.close();
                                  
                                   if (conn.getResponseCode() == 200) {
                                         address =parseResponseXML(conn
                                                    .getInputStream()); 
                                  }
                            } catch (Exception e) {
                            }
                      };
                };
                thread.start();
                 try { thread.join(); } catch (Exception e) {}
                 if(address !=null){
                       return address ;
                }
                 return null ;
          }
     我一般有线程的方法都不会给方法体返回值,在线程里的http有请求返回之后,通过handler发消息去继续往下执行其他步骤。
      

  4.   

    楼主解决方法里哪里定义了address??