Я использую ось Apache для отправки запросов SOAP в моем проекте Java.Поэтому я хотел добавить HTTP-заголовок для авторизации путем переопределения метода createCall () следующим образом:
private java.lang.String headers;
// then there are codes to fulfill headers which will be a stringified JSON
@Override
public Call createCall() {
_call = new org.apache.axis.client.Call(this) {
@Override
public void setRequestMessage(Message msg) {
super.setRequestMessage(msg);
MimeHeaders mimeHeaders = msg.getMimeHeaders();
if( headers != null )
{
JSONObject jsonHeaders = null;
try {
jsonHeaders = new JSONObject(headers.trim());
Iterator<String> keys = jsonHeaders.keys();
while (keys.hasNext()) {
String key = keys.next();
if (jsonHeaders.get(key) instanceof String) {
String value = jsonHeaders.get(key).toString();
mimeHeaders.addHeader(key, value);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
};
return _call;
}
Но это приводит к исключению ошибки:
(400)Bad Request
AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultSubcode:
faultString: (400)Bad Request
faultActor:
faultNode:
faultDetail:
{}:return code: 400
{http://xml.apache.org/axis/}HttpErrorCode:400
Устанавливаю ли я заголовкиправо?