gpt4 book ai didi

java - HTTP header 中没有 cookie

转载 作者:行者123 更新时间:2023-12-01 05:52:12 25 4
gpt4 key购买 nike

我已经在 BlackBerry 中创建了 HttpConnection。它返回给我一个成功的登录信息,但我无法检索 cookie,因为 header 中没有 cookie。有谁知道我怎样才能得到cookie?

这是代码..

private String login(String URL)
{

HttpConnection httpConn = null;
DataInputStream dis = null;
DataOutputStream dos = null;
StringBuffer responseMessage = new StringBuffer();
// the request body

//Encode the login information in Base64 format.

//String username = userName.getString();
//String password = userPassWord.getString();
// username = loginScreen.getUserId();
//password = loginScreen.getPassword();
try {
// an HttpConnection with both read and write access
net.rim.blackberry.api.browser.URLEncodedPostData login = new net.rim.blackberry.api.browser.URLEncodedPostData(null, false);
login.append("username"); //field name , value
login.append("password");
httpConn = ( HttpConnection )Connector.open( URL, Connector.READ_WRITE );

// set the request method to POST
httpConn.setRequestMethod( HttpConnection.POST );
httpConn.setRequestProperty(HttpProtocolConstants.HEADER_CONTENT_TYPE, HttpProtocolConstants.CONTENT_TYPE_APPLICATION_X_WWW_FORM_URLENCODED);
httpConn.setRequestProperty("Accept", "text/html");

// obtain DataOutputStream for sending the request string
dos = httpConn.openDataOutputStream();
byte[] request_body = login.getBytes();

// send request string to server
for( int i = 0; i < request_body.length; i++ ) {
dos.writeByte( request_body[i] );
}//end for( int i = 0; i < request_body.length; i++ )

for (int i=0; ; i++) {
String headerName = httpConn.getHeaderFieldKey(i);
String headerValue = httpConn.getHeaderField(i);
if (headerName == null && headerValue == null) {
// No more headers
break;
} else
responseMessage.append("headerName : " + headerName + ", headerValue : " + headerValue + "\n");
}

// obtain DataInputStream for receiving server response
dis = new DataInputStream( httpConn.openInputStream() );

// retrieve the response from server
int data;
tmpCookie = httpConn.getHeaderField("Set-Cookie");

responseMessage.append("1st Cookie" + tmpCookie);
if (tmpCookie != null) {
int semicolon = tmpCookie.indexOf(';');
cookie = tmpCookie.substring(0, semicolon);
responseMessage.append("Cookie" + cookie);
}

responseMessage.append( "LOGIN RESPONSE :" );
while( ( data = dis.read() ) != -1 ) {
responseMessage.append((char)data );

}//end while( ( ch = dis.read() ) != -1 ) {

}

catch( Exception e )
{
e.printStackTrace();
responseMessage.append( "ERROR" );
}
finally {
// free up i/o streams and http connection
try {
if( httpConn != null ) httpConn.close();
if( dis != null ) dis.close();
if( dos != null ) dos.close();
} catch ( IOException ioe ) {
ioe.printStackTrace();
}//end try/catch
}//end try/catch/finally
return responseMessage.toString();
}//end sendHttpPost( String )

最佳答案

仔细检查服务 API。也许您期待的东西不存在(服务不使用 cookie),或者您没有按预期使用 API(服务支持 cookie,但服务请求没有要求)。

或者,但服务 API 应该告诉它,cookie 是使用 javascript 在本地生成的。在这种情况下,您将找不到 header 条目,并且必须执行脚本代码来设置 cookie。

关于java - HTTP header 中没有 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4312287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com