Android Can';t访问和转换web服务

Android Can';t访问和转换web服务,android,web-services,Android,Web Services,我正在使用tempconvert web服务,但它不会给出任何结果,只是显示空白屏幕 这是否意味着我的应用程序无法访问web服务,或者我必须进行一些设置才能连接到URL,我使用的是ksoap2 2.6.5 这是我的密码 package com.example.webservice2; import android.os.Bundle; import android.widget.TextView; import android.app.Activity; import org.ksoap2.*

我正在使用tempconvert web服务,但它不会给出任何结果,只是显示空白屏幕

这是否意味着我的应用程序无法访问web服务,或者我必须进行一些设置才能连接到URL,我使用的是ksoap2 2.6.5

这是我的密码

package com.example.webservice2;

import android.os.Bundle;
import android.widget.TextView;
import android.app.Activity;
import org.ksoap2.*;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

public class WebService extends Activity {

    private final String SOAP_ACTION = "http://tempuri.org/CelsiusToFahrenheit";
    private final String METHOD_NAME = "CelsiusToFahrenheit";
    private final String NAMESPACE = "http://tempuri.org/";
    private final String URL = "http://www.w3schools.com/webservices/tempconvert.asmx";

    TextView tv;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        tv = (TextView) findViewById(R.id.tv);

        SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
        Request.addProperty("celsius", "32");

        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(Request);

        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

        try {
            androidHttpTransport.call(SOAP_ACTION, envelope);
            SoapPrimitive response = (SoapPrimitive) envelope.getResponse();

            tv.setText("status:" + response);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
我正在使用此url中的web服务

http://www.w3schools.com/webservices/tempconvert.asmx

我希望你已经允许上网,如果没有请遵循下面的代码


...

使用下面这样的异步任务,这对我很有效,如果遇到任何问题,请告诉我

 public class SyncroniseRecords extends AsyncTask<Void, Void, Void>
{  
@Override
protected void onPreExecute()
{  
    super.onPreExecute();
    dialog.setMessage("Please wait...");
    dialog.setCancelable(false);
    dialog.show();

} 
@Override 
protected void onProgressUpdate(Void... values) {
    super.onProgressUpdate(values);
    // Things to be done while execution of long running operation is in progress. For example updating ProgessDialog
 }

@Override 
protected void onPostExecute(Void result)
{ 
       dialog.cancel();
}
@Override
protected Void doInBackground(Void... params) {

    /** Your Operation */

    return null;
}
公共类SyncroniseRecords扩展异步任务
{  
@凌驾
受保护的void onPreExecute()
{  
super.onPreExecute();
setMessage(“请稍候…”);
对话框。可设置可取消(false);
dialog.show();
} 
@凌驾
受保护的void onProgressUpdate(void…值){
super.onProgressUpdate(值);
//正在执行长时间运行的操作时要执行的操作。例如更新ProgessDialog
}
@凌驾
受保护的void onPostExecute(void结果)
{ 
dialog.cancel();
}
@凌驾
受保护的Void doInBackground(Void…参数){
/**你的手术*/
返回null;
}
}

这将在没有任何黑屏的情况下启动活动。使用onPreExecute可以显示进度栏。一旦进程完成,可以在OnPostExecute()中取消它


希望它能帮助您

当您在代理网络上并且没有设置代理设置时,检查您是否不在代理网络上。

是否尝试调试它?顺便说一句,您不应该在主线程上访问web服务。使用一个
AsyncTask
,或者更好的,
Loader
我在调试它时收到了javadoc不可用的消息,如何在其中添加javadoc,我曾尝试构建路径并在其中添加jdk 1.7.0 doc文件夹,但它没有帮助,也使用了早期版本的javadoc,但这也不起作用。javadoc有问题吗?是的,你是对的,我在代理网络上,当我设置代理时,它的工作正常。