2014-03-07 272 views
0

我创建了一个asp.net网络服务和使用模拟器,我可以很容易地访问我想要的网络服务,现在我想通过网络访问网络服务,所以我的手机将成为客户端和我的笔记本电脑将服务器试图做很多小时,但没有发生任何事情仍然给我java.lang.NullPointerException。 我创建了一个本地网络和看图片,看网络信息http://s9.postimg.org/k3a7t754f/image.png,当我在手机连接到网络我的IP地址是192.168.173.205通过网络访问网络服务

  • 这是我的第一类UserService这个类将调用从AsyncTaskclass

    @Override 
    protected User doInBackground(Void... params) 
    { 
        try 
        { 
         return new UserService("CheckFirstTimeLogin", "UserApi.asmx") 
           .CheckLogin(mUsername, mPassword); 
        } 
        catch (Exception e) 
        { 
         return null; 
        } 
    } 
    
    @Override 
    protected void onPreExecute() 
    { 
        super.onPreExecute(); 
        alertDialog = new AlertDialog.Builder(LoginActivity.this).create(); 
    } 
    
    @Override 
    protected void onPostExecute(User user) 
    { 
        if (user == null) 
        { 
         onCancelled(); 
         alertDialog.setTitle(R.string.login_connecnt_title); 
         alertDialog.setMessage("خطأ اثناء عملية الإتصال"); 
         alertDialog.show(); 
        } 
    } 
    

package com.routingware.services;  
import android.util.Log; 

import com.routingware.database.models.User; 
import org.ksoap2.SoapEnvelope; 
import org.ksoap2.serialization.PropertyInfo; 
import org.ksoap2.serialization.SoapObject; 
import org.ksoap2.serialization.SoapSerializationEnvelope; 
import org.ksoap2.transport.HttpTransportSE; 

public String NAMESPACE = "http://tempuri.org/"; 
public String METHOD = ""; 
public String ACTION = ""; 
public String URL  = "http://192.168.173.1/projectnetwork/"; 

public class UserService extends CommonClass { 

    public UserService (String MethodName, String PageName) { 
     METHOD = MethodName; 
     ACTION = NAMESPACE + MethodName; 
     URL = URL + PageName; 
    } 

    public User CheckLogin (String Username, String Password) { 

     User user = null; 

     SoapObject Request = new SoapObject(NAMESPACE, METHOD); 

     // Send Username as parameter 
     PropertyInfo Pi = new PropertyInfo(); 
     Pi.setName("Username"); 
     Pi.setValue(Username); 
     Pi.setType(String.class); 
     Request.addProperty(Pi); 

     // Send Password as parameter 
     Pi = new PropertyInfo(); 
     Pi.setName("Password"); 
     Pi.setValue(Password); 
     Pi.setType(String.class); 
     Request.addProperty(Pi); 

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

     envelope.addMapping(NAMESPACE, "User",new User().getClass()); 
     HttpTransportSE httpTransport = new HttpTransportSE(URL); 
     httpTransport.debug = true; 

     try 
     { 
      Log.e("call","1"); 
      httpTransport.call(ACTION, envelope); 
      SoapObject Response = (SoapObject)envelope.getResponse(); 

      user = new User(); 
      user.setUserID(Integer.parseInt(Response.getProperty(0).toString())); 
      user.setUserName(Response.getProperty(1).toString()); 
      user.setUserPasswrd(Response.getProperty(2).toString()); 
      user.setBranchID(Integer.parseInt(Response.getProperty(3).toString())); 
      user.setCompanyID(Integer.parseInt(Response.getProperty(4).toString())); 
      user.setUserState(Boolean.parseBoolean(Response.getProperty(5).toString())); 
     } 
     catch (Exception ex) 
     { 
      Log.e("call",ex.toString()); 
      return null; 
     } 
     finally 
     { 
      return user; 
     } 
    } 
} 
  • 呼叫的方法

    对不起我的英文不好

  • 回答

    0

    你能发表日志吗?您的设备是否连接到笔记本电脑所连接的同一个无线网络。 由于您使用本地网络作为您的服务,设备应连接到相同的WiFi网络。

    +0

    是连接到同一个wifi网络 – user3367149

    +0

    791-804的步骤是ksoap2 /com.routingware.app E/call:java.lang.NullPointerException – user3367149

    +0

    你可以发布你得到的所有错误日志吗? –