我正在尝试使用 HttpGet Url 发送 Cookie 。从我的服务(由HttpGet调用)接收,用于身份验证。我发送它与Url,但每次收到错误消息。
喜欢:“用户必须经过身份验证”。
我收到错误。
05-15 10:28:17.623: I/System.out(18393): <root>
05-15 10:28:17.623: I/System.out(18393): <status>0</status>
05-15 10:28:17.623: I/System.out(18393): <error>User must be Authentificated</error>
05-15 10:28:17.623: I/System.out(18393): </root>
05-15 10:28:17.623: I/System.out(18393): response =: org.apache.harmony.xml.dom.DocumentImpl@41bff838
05-15 10:28:17.623: I/System.out(18393): sts value =: 0
05-15 10:28:17.623: I/System.out(18393): print customer actived bid api sts values 1 che...
演示的屏幕截图,错误消息。
任何人都有想法来解决这个问题......
答案 0 :(得分:0)
服务器将向您发送Set-Cookie
标头,您必须使用该标头获取Cookie并将其发送到所有其他请求中。这是一个小型演示。
String cookie;
private static String cookieHeader = "Cookie";
private static String Header_SetCookie = "Set-Cookie";
public HttpResponse get(String url) {
HttpGet getMethod = new HttpGet(url);
DefaultHttpClient hc = new DefaultHttpClient();
if(cookie!=null) {
getMethod.addHeader(cookieHeader, cookie);
}
HttpResponse response = hc.execute(getMethod);
Header[] headers = response.getAllHeaders();
for (int i = 0; i < headers.length; i++) {
Header h = headers[i];
if(h.getName().equals(Header_SetCookie)){
cookie = h.getValue();
}
}
return response;
}