Подключение к локальному хосту webservice в android ?
всем привет
я пытаюсь подключиться к локальному хосту asmx webservice, который вставляет данные в локальную базу данных из мобильного приложения с помощью android studio .
я получил ошибку
java.net.connectexception connection refused connect
могу ли я подключиться к localhost webservice из кода android , кстати, мой webservice отлично работает после запуска из visual studio
Что я уже пробовал:
это мой код в android studio :
=====класс = =====
public class ContactResult { public static int ErrorID ; public static String ErrorMessage; }
====== класс 2 ==============
public class CallWebservice { private final String NAMESPACE= "http://tempuri.org/"; private final String URL = "http://localhost:1844/AndroidWebService.asmx"; public void OpenAccount(String FullName , String Phone) { final String METHOD_NAME = "OpenAccount"; final String SOAP_ACTION = "http://tempuri.org/OpenAccount"; SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); request.addProperty("FullName", FullName); request.addProperty("Phone", Phone); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; envelope.setOutputSoapObject(request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); Object response = null; try { androidHttpTransport.call(SOAP_ACTION, envelope); SoapObject result = (SoapObject) envelope.getResponse(); ContactResult.ErrorMessage = result.getProperty("ErrorMessage").toString(); ContactResult.ErrorID = Integer.parseInt(result.getProperty("ErrorID").toString()); } catch (Exception e) { e.printStackTrace(); } }
= = = = = = = = этот код внутри mainActivity ======================
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void addclick(View view) { final EditText txtname = (EditText)findViewById(R.id.txtname); final EditText txtphone = (EditText)findViewById(R.id.txtphone); Thread runt = new Thread(){ public void run(){ CallWebservice cweb = new CallWebservice(); cweb.OpenAccount(txtname.getText().toString() , txtphone.getText().toString()); } }; runt.start(); try { runt.join(); } catch (Exception ex){} }
F-ES Sitecore
"localhost" означает машину, на которой в данный момент выполняется код. Если этот код работает на вашем рабочем столе, а служба работает внутри узла IIS, то он будет работать. Если код находится на устройстве android, то ваш сервис также должен быть запущен на веб-хостинге на устройстве android. Если вы хотите, чтобы служба жила где-то за пределами android-устройства, то она должна быть на хосте, который android-устройство может разрешить\access, и код должен быть обновлен для доступа к этому хосту, а не к "localhost".