Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的饼干不好吃';在安卓系统中,HttpsUrlConnection似乎没有被添加_Java_Android_Cookies_Http Headers - Fatal编程技术网

Java 我的饼干不好吃';在安卓系统中,HttpsUrlConnection似乎没有被添加

Java 我的饼干不好吃';在安卓系统中,HttpsUrlConnection似乎没有被添加,java,android,cookies,http-headers,Java,Android,Cookies,Http Headers,我正在编写一个post方法,该方法需要将会话cookie附加到请求。我使用HttpsUrlConnection类打开了一个安全的SSL连接。这个很好用。我通过调用connection.setRequestProperty(“cookie”,CookieData)向连接添加cookie。 不幸的是,我的服务器返回了一个500,我怀疑这与post请求中没有附加cookie或正确的cookie有关。之后,我使用setRequestProperty将cookie添加到连接中,我通过记录Log.I(标记

我正在编写一个post方法,该方法需要将会话cookie附加到请求。我使用
HttpsUrlConnection
类打开了一个安全的SSL连接。这个很好用。我通过调用
connection.setRequestProperty(“cookie”,CookieData)
向连接添加cookie。

不幸的是,我的服务器返回了一个500,我怀疑这与post请求中没有附加cookie或正确的cookie有关。之后,我使用
setRequestProperty
将cookie添加到连接中,我通过记录
Log.I(标记,“Post cookie header=“+connection.getHeaderField(“cookie”))检查连接现在是否有cookie
但返回
null


问题-->我添加的cookie是否正确,如果正确,为什么
getHeaderField(“cookie”)
返回
null

Post方法

public static boolean post(Object message, Context context) {
    try {
        HttpsURLConnection connection = (HttpsURLConnection) setupConnection(HttpMethod.POST);
        connection.setSSLSocketFactory(getSslContext(context).getSocketFactory());

        if(TheCookieManager.getCookieStore().getCookies().size() > 0) {
            Log.i(TAG, "post found cookie " + TextUtils.join(";", TheCookieManager.getCookieStore().getCookies()));
            connection.setRequestProperty("Cookie",  TextUtils.join(";", TheCookieManager.getCookieStore().getCookies()));
        }

        JSONObject data = new JSONObject();
        data.put("msg", message);
        Log.i(TAG, "post data=" + data.toString());
        OutputStream os = connection.getOutputStream();
        os.write(data.toString().getBytes(UTF8));
        os.flush();

        Log.i(TAG, "Post cookie header = " + connection.getHeaderField("Cookie"));


        int code = connection.getResponseCode();

        connection.disconnect();

        Log.i(TAG, "post data fed to server!, data= " + data.toString());
        Log.i(TAG, "server responded with " + String.valueOf(code));

        return code != 200;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}
看起来不错

获取空值的原因是在连接之前无法查询标题

从URLConnection javadoc:

以下方法用于访问标题字段和 连接到远程对象后的内容:

  • 获取内容
  • 格海德菲尔德
  • getInputStream
  • getOutputStream
您确定这就是服务器出错的地方吗?

看起来不错

获取空值的原因是在连接之前无法查询标题

从URLConnection javadoc:

以下方法用于访问标题字段和 连接到远程对象后的内容:

  • 获取内容
  • 格海德菲尔德
  • getInputStream
  • getOutputStream

您确定这就是您的服务器错误所在吗?

HttpUrlConnection方法getErrorStream对于调试此类错误非常有用。我不能确定这是否是问题所在,因为我不是服务器管理员。errorStream没有帮助
服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出错。
我认为您的setupConnection方法设置了connection.setDoOutput(true)?并且您正在设置服务器正在侦听的正确“Content Type”头?例如,connection.setRequestProperty(“Content_Type”,“application/x-www-form-urlencoded”);HttpUrlConnection方法getErrorStream对于调试此类错误非常有用。我不能确定这是否是问题所在,因为我不是服务器管理员。errorStream没有帮助
服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出错。
我认为您的setupConnection方法设置了connection.setDoOutput(true)?并且您正在设置服务器正在侦听的正确“Content Type”头?例如,connection.setRequestProperty(“Content_Type”,“application/x-www-form-urlencoded”);