2011-04-07 4 views
0

Android에서 새로운 문제로 직면하고 있습니다. 나는 아래의 문제에 대한 안드로이드에서 구문을 작성하는 방법을 알아야합니다.android에서 구문을 쓸 때 도움이 필요합니다.

문제점 : .net 웹 서비스 (www.somesite.com)가 있습니다. 이 웹 서버에는 인증을위한 매개 변수로 사용자 이름과 암호가 필요한 인증 방법이 있습니다. 인증 방법을 사용하여 이러한 작업을 설정하면 웹 서버에있는 나머지 기능을 호출 할 수 있습니다. ASP에 작성된 소스 코드가 있습니다. 나는 안드로이드에서 같은 코드를 작성하고 싶다.

private MyServerAPI.Service _service; 
_service = new MyServerAPI.Service(); 

MyServerAPI.DTAuthHeader auth = new MyServerAPI.DTAuthHeader(); 
auth.Username = ConfigurationManager.AppSettings["MyServerAPI.user"]; 
auth.Password = ConfigurationManager.AppSettings["MyServerAPI.pass"]; 

_service.DTAuthHeaderValue = auth; 
_service.Url = ConfigurationManager.AppSettings["MyServerAPI.service"]; 

기본적으로 안드로이드에서 위의 코드와 같은 것을 쓰고 싶습니다.

답변

0

KSOAP2이라는 WebServices를 다루기위한 라이브러리가 있습니다. 그것을 찾으십시오 here

귀하의 서버가 사용자 이름과 암호를 보내도록 요청하는 방법을 사용하십시오.

UPDATE
코드 조각은 :

SoapObject soapRequest = new SoapObject(WSDL_TARGET_NAMESPACE, OPERATION_NAME) ; 
    soapRequest.addProperty("appName","MyCoolApp"); 
    soapRequest.addProperty("sEmail","[email protected]"); 
    soapRequest.addProperty("sPassword","test"); 
    SoapSerializationEnvelope soapEnvelope = new  SoapSerializationEnvelope(SoapEnvelope.VER11); 
    soapEnvelope.dotNet = true; 
    soapEnvelope.setOutputSoapObject(soapRequest); 

    HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS); 

    try{ 
    httpTransport.call(SOAP_ACTION, soapEnvelope); 
    Object response = soapEnvelope.getResponse(); 
    Log.d("-----RESPONSE",""+response); 
    }catch (Exception exception){ 
    Log.d("RESPONSE",""+exception.toString()); 
    } 

내가 여기에 전체 코드를 게시 낙담하지만,하지만 당신이 긴박한 문제가 될 것으로 보인다 이후, 나는이 희망을 많이하는 데 도움이됩니다.

또는 조금만 기다려주세요. 블로그를 자세히 보겠습니다.

+0

당신은 샘플 코드를 작성하여 우리에게 매우 긴급한 내용으로 게시 할 수 있습니다 – Naruto

+0

감사합니다 셰이크, 물론 내가 ur 블로그를 기다릴 것입니다 .. Thanks lot :) .. 나는 ur 코드를 살펴볼 것입니다. – Naruto

+0

감사합니다 :) 그리고이 답변으로 문제가 해결되면 해결 된 것으로 표시 할 수 있습니다. –

0

타사 라이브러리에 의존하고 싶지 않다면 Android 용 inbuild 클래스도 사용하십시오.

다음은 사용자 이름과 암호를 전달하면서 웹 서버에 데이터를 게시하는 데 사용되는 기능입니다.

public void postDataToWeb() { 
    // Create a new HttpClient and Post Header 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("www.yoursite.com"); 

    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("Username", "Paresh")); 
     nameValuePairs.add(new BasicNameValuePair("Password", "[email protected]")); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity entity = response.getEntity(); 
    InputStream is = entity.getContent(); 

    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
    } 
} 

이제 입력 스트림 (위의 예에서는 'is')에서 응답을 받고 있으며 입력 스트림을 사용하여 재생할 수 있습니다.

+0

안녕하세요 Paresh, 답장을 보내 주셔서 감사합니다. 안드로이드에서 .net 웹 서비스에있는 클래스의 인스턴스를 만드는 법을 알고 싶습니다. – Naruto

+0

당신은 도울 수 있습니까? 내가 제발 내가이 코드를 시도해 줘 그래서 당신은 나 또한 콘텐츠 형식의 매개 변수를 전달해야 말해 줄 수 있습니까? –

관련 문제