如何在android中调用web服务

如何在android中调用web服务,android,web-services,Android,Web Services,我需要从url调用web服务。如果我在文本框中输入了“否”,那么我应该在文本框中输入输出。请帮我纠正错误。这是我的java代码 MainActivity.java public class MainActivity extends Activity { Button b; TextView tv; EditText et; String editText; String displayText; @Override public voi

我需要从url调用web服务。如果我在文本框中输入了“否”,那么我应该在文本框中输入输出。请帮我纠正错误。这是我的java代码

MainActivity.java

public class MainActivity extends Activity {

    Button b;
    TextView tv;
    EditText et;

    String editText;
    String displayText;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        et = (EditText) findViewById(R.id.editText1);

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

        b = (Button) findViewById(R.id.button1);



        b.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                if (et.getText().length() != 0 && et.getText().toString() != "") {

                    editText = et.getText().toString();

                    AsyncCallWS task = new AsyncCallWS();

                    task.execute();

                } else {
                    tv.setText("Please enter number");
                }
            }
        });
    }

    private class AsyncCallWS extends AsyncTask<String, Void, Void> {
    @Override
        protected Void doInBackground(String... params) {
            displayText = ser.invokeiop(editText,"hello");
            return null;

        }

    }
}
public class ser {

    private static String NAMESPACE = "http://tempuri.org/";

    private static String URL = "http://my url";

    private static String SOAP_ACTION = "srvice";

    public static String invokeiop(String name, String webMethName) {
        String resTxt = null;

        SoapObject request = new SoapObject(NAMESPACE, webMethName);

        PropertyInfo iop = new PropertyInfo();

        iop.setName("name");

        iop.setValue(name);

        //iop.setType(String.class);

        request.addProperty(iop);

        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);

        envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

        try {

            androidHttpTransport.call(SOAP_ACTION+webMethName, envelope);

            SoapPrimitive response = (SoapPrimitive) envelope.getResponse();

            resTxt = response.toString();



        } catch (Exception e) {

            e.printStackTrace();


            resTxt = "Error occured";
        } 
这可能对你有帮助

public class MainActivity extends Activity {

Button b;
EditText et;

String editText;
String displayText;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    et = (EditText) findViewById(R.id.editText1);

    b = (Button) findViewById(R.id.button1);

    b.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            if (et.getText().length() != 0 && et.getText().toString() != "") {

                editText = et.getText().toString();

                AsyncCallWS();

            } else {
                // declare a toast
            }
        }
    });
}


public void AsyncCallWS(final String q)
{
class HttpGetAsyncTask extends AsyncTask<String, Void, String>
{

@Override
protected String doInBackground(String... params) 
{
    String txtSearch = params[0];
    HttpClient httpClient = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet("URL"+editText);
    try 
    {

    HttpResponse httpResponse = httpClient.execute(httpGet);

    inputStream = httpResponse.getEntity().getContent();

            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);

            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

            StringBuilder strB = new StringBuilder();

    String bufferedStrChunk = null;

    while((bufferedStrChunk = bufferedReader.readLine()) != null)
    {
        strB.append(bufferedStrChunk);
    }

    return strB.toString();

    } 
    catch (ClientProtocolException cpe)
    {
    cpe.printStackTrace();
    } 
    catch (IOException ioe) 
    {
        ioe.printStackTrace();
    }
    return null;
    }

            @Override
    protected void onPostExecute(String result)     
    {
        super.onPostExecute(result);
            try {

            // Parse your data here             
            } 
                    catch (JSONException e) {
                Log.e("JSON Parser", "Error parsing data " + e.toString());
            }
    }

    }
    HttpGetAsyncTask httpGetAsyncTask = new HttpGetAsyncTask();

    httpGetAsyncTask.execute(editText);         
}
公共类MainActivity扩展活动{
按钮b;
编辑文本;
字符串编辑文本;
字符串显示文本;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et=(EditText)findViewById(R.id.editText1);
b=(按钮)findViewById(R.id.button1);
b、 setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
if(et.getText().length()!=0和et.getText().toString()!=“”){
editText=et.getText().toString();
AsyncCallWS();
}否则{
//举杯
}
}
});
}
公共void AsyncCallWS(最终字符串q)
{
类HttpGetAsyncTask扩展了AsyncTask
{
@凌驾
受保护的字符串doInBackground(字符串…参数)
{
字符串txtSearch=params[0];
HttpClient HttpClient=新的DefaultHttpClient();
HttpGet HttpGet=新的HttpGet(“URL”+editText);
尝试
{
HttpResponse HttpResponse=httpClient.execute(httpGet);
inputStream=httpResponse.getEntity().getContent();
InputStreamReader InputStreamReader=新的InputStreamReader(inputStream);
BufferedReader BufferedReader=新的BufferedReader(inputStreamReader);
StringBuilder strB=新的StringBuilder();
字符串bufferedStrChunk=null;
while((bufferedStrChunk=bufferedReader.readLine())!=null)
{
strB.append(bufferedStrChunk);
}
返回strB.toString();
} 
捕获(客户端协议异常cpe)
{
printStackTrace();
} 
捕获(ioe异常ioe)
{
ioe.printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(字符串结果)
{
super.onPostExecute(结果);
试一试{
//在这里解析数据
} 
捕获(JSONException e){
Log.e(“JSON解析器”,“错误解析数据”+e.toString());
}
}
}
HttpGetAsyncTask HttpGetAsyncTask=新的HttpGetAsyncTask();
httpGetAsyncTask.execute(editText);
}

你想说什么???你需要在web服务中传递值并想要获取还是其他?是的..请帮助。我是android新手。dnt knw如何在web服务中传递值,我应该从中获取不..仅使用SOAP尝试。谢谢你的回答。:)但当我尝试此代码时,它的力量在emulator中关闭。