如何在android中调用web服务
我需要从url调用web服务。如果我在文本框中输入了“否”,那么我应该在文本框中输入输出。请帮我纠正错误。这是我的java代码 MainActivity.java如何在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
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中关闭。