Tôi cần sử dụng dịch vụ web SOAP bằng Android.Xác thực HTTP cơ bản bằng cách sử dụng KSOAP cho android
Vấn đề là trước khi yêu cầu một hàm cụ thể, tôi cần xác thực ứng dụng bằng cách sử dụng yêu cầu http cơ bản.
Bạn có biết cách thực hiện điều này bằng KSOAP không?
Cho đến thời điểm này tôi đã cố gắng sử dụng phương pháp quá tải của httpsTransportSE.call() vì nó gợi ý rằng tôi có thể xác định tiêu đề bổ sung cho kết nối http
headerPropertyList.add(new HeaderProperty("Authorization", "Basic : dXNlcjpwYXNz"));
"cdXNlcjpwYXNz" là chuỗi được mã hóa 64 của "người dùng: vượt qua"
public List call(String soapAction, SoapEnvelope envelope, List headers)
* @param headers a list of HeaderProperties to be http header properties when establishing the connection
private static final String SOAP_ACTION = "someaddress/IPortReporting/GetPortStatus";
private static final String METHOD_NAME = "methodname";
private static final String NAMESPACE = "http://ssn.someaddress/2.0/";
private static final String URL = "new.someaddress/functionName.svc";
SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
Request.addProperty("MessageId", "1");
SoapSerializationEnvelope soapEnvelop = new SoapSerializationEnvelope(
11);
//soapEnvelop.headerOut = addHeaders();
soapEnvelop.dotNet = true;
soapEnvelop.setOutputSoapObject(Request);
List<HeaderProperty> headerPropertieList = new ArrayList<HeaderProperty>();
headerPropertyList.add(new HeaderProperty("Authorization", "Basic : cG9ydHdzOjEyM3F3ZUFTRA=="));
//HeaderProperty headerProperty = new HeaderProperty()
HttpsTransportSE httpsse = new HttpsTransportSE(URL, 443, "", 5000);
try {
httpsse.call(SOAP_ACTION, soapEnvelop, headerPropertyList);
//httpsse.call(SOAP_ACTION, soapEnvelop);
SoapPrimitive resultString = (SoapPrimitive) soapEnvelop
.getResponse();
tv.setText("Status: ");
} catch (Exception e) {
tv.setText("Some error," + " "
+ e.getMessage());
}
Nhưng tôi có thông báo "quyền bị từ chối" được báo cáo lại.
khi bạn nhanh chóng headerPropertyList bạn viết bất động sản, nhưng sau khi bạn cài đặt nó, bạn gọi nó propertie mà có thể được? – GriffiN