ANDROID 호출 웹 서비스 테이프 soapheader 인증
1. 인터페이스 먼저 보기
POST /webserver/ValideWebService.asmx HTTP/1.1
Host: IP
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http:// /Login"
"1.0" encoding="utf-8"?>
"http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
"http:// /">
string
"http:// /">
string
string
검증 할 때 header 와 body 두 부분 을 검증 해 야 합 니 다. 제3자 jar 패키지, ksoap 2 - android - assembly - 2.5.2 - jar - with - dependencies. jar 를 도입 해 야 합 니 다.다음은 제 가 사용 하 는 방법 을 검증 하 는 것 입 니 다. 인터넷 에 많은 것 이 있 지만 검증 할 수 없습니다. '가 져 와' 수정 하고 기록 을 해서 나중에 볼 수 있 도록 하 는 것 도 여러분 이 참고 하 시기 편리 합 니 다.
;
//
private static final String NAMESPACE = "http:// /";
//
private static String URL = "http://IP /webserver/ValideWebService.asmx";
//
private static final String METHOD_NAME = "Login";
// +
private static String SOAP_ACTION = "http:// /Login";
private SoapObject detail;
2.3 이상 메 인 스 레 드 에서 네트워크 에 직접 접근 할 수 없 기 때문에 필요 한 곳 에서 키 스 레 드 를 엽 니 다. 여 기 는 제 가 단 추 를 누 르 고 로그 인 할 때 필요 하기 때문에 onclick () 방법 에 적 습 니 다.
new Thread() {
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
try {
SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);
// 2 propertyinfo, Login , asmx
PropertyInfo pi = new PropertyInfo();
pi.setName("loginName");
pi.setValue(cardNumStr);
rpc.addProperty(pi);
pi=new PropertyInfo();
pi.setName("passowrd");
pi.setValue(passwordStr);
rpc.addProperty(pi);
//soapheader
Element[] header = new Element[1];
header[0] = new Element().createElement(NAMESPACE, "MySoapHeader");
Element username = new Element().createElement(NAMESPACE, "ProjectID");
username.addChild(Node.TEXT, " ");
header[0].addChild(Node.ELEMENT, username);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.headerOut = header;
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);
HttpTransportSE ht = new HttpTransportSE(URL);
ht.call(SOAP_ACTION, envelope);
//SoapObject
detail =(SoapObject) envelope.getResponse();
System.out.println(" "+ detail.toString());
}catch (Exception e){
System.out.println(" :"+ e.getMessage());
}
Message msg = handler.obtainMessage();
msg.obj=detail;
handler.sendMessage(msg);
}
}.start();
위의 cardNumStr 와 passwordStr 는 내 가 텍스트 입력 상자 에서 가 져 온 값 이다.네트워크 를 방문 하여 인터페이스 에서 검증 을 통 해 반환 값 을 얻 고 되 돌아 오 는 데 이 터 를 처리 하면 됩 니 다.
SoapObject 를 사용 합 니 다. 되 돌아 오지 않 는 detail 은 null 입 니 다.
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
// UI
};
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.