Java HttpURLConnection conn.getRequestProperty返回null

Java HttpURLConnection conn.getRequestProperty返回null,java,http,web,httpurlconnection,Java,Http,Web,Httpurlconnection,我正在尝试将一些数据推送到BES的URL(MDS_CS) 当我在代码中设置一些请求头并提交请求时,提交的请求头被设置为null 这是我的密码: HttpURLConnection conn =(HttpURLConnection)url.openConnection(); conn.setDoInput(true);//For receiving the confirmation conn.setDoOutput(true);//For sendi

我正在尝试将一些数据推送到BES的URL(MDS_CS)

当我在代码中设置一些请求头并提交请求时,提交的请求头被设置为null

这是我的密码:

        HttpURLConnection conn =(HttpURLConnection)url.openConnection();
        conn.setDoInput(true);//For receiving the confirmation
        conn.setDoOutput(true);//For sending the data
        conn.setRequestMethod("POST");//Post the data to the proxy
        conn.setRequestProperty("X-Rim-Push-ID", pushId);
        conn.setRequestProperty("Content-Type", "text/html");
        conn.setRequestProperty("X-Rim-Push-Title", "-message");
        conn.setRequestProperty("X-Rim-Push-Type", "browser-message");                 
        conn.setRequestProperty("X-Rim-Push-Dest-Port", "7874");            
        //Write the data
        OutputStream out = conn.getOutputStream();
        out.write(data.getBytes());
        out.close();

        System.out.println(conn.getHeaderField("X-Rim-Push-ID"));
当我试图检索X-Rim-Push-Title时,最后一行返回null,它是null 只有正确检索的X-Rim-Push-ID

请帮助我

我建议使用


HttpClient是一种比HttpURLConnection更强大的处理HTTP的方法。

不太清楚您真正想要做什么。但是要查看发布到服务器上的内容,您必须将其发布到您自己的服务器上,并读取您在那里收到的数据

如果要查看所有请求标头,可以:

for (String header : conn.getRequestProperties().keySet()) {
   if (header != null) {
     for (String value : conn.getRequestProperties().get(header)) {
        System.out.println(header + ":" + value);
      }
   }
}
或者在连接后,您可以打印响应标题:

for (String header : conn.getHeaderFields().keySet()) {
   if (header != null) {
     for (String value : conn.getHeaderFields().get(header)) {
        System.out.println(header + ":" + value);
      }
   }
}

当我检查我提交的头文件和请求的输入流时,我得到了200 ok状态,但没有向设备发送任何内容

from server: 200 | OK


=======REQUEST===============
request header:X-Rim-Push-ID:pushID:1342694818991
request header:Host:win-uhgr7vs88uz.assabb.com:8080
request header:Content-Length:19
request header:X-Rim-Push-Title:-message
request header:User-Agent:Java/1.6.0_18
request header:POST /push?DESTINATION=bestest%40assa-associates.com&PORT=7874&REQUESTURI=/ HTTP/1.1:null
request header:Content-Type:text/html
request header:Accept:text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
request header:Connection:keep-alive
request header:X-Rim-Push-Dest-Port:7874
request header:X-Rim-Push-Type:browser-message
======Response===============
response header:Date:Thu, 19 Jul 2012 10:47:10 GMT
response header:Content-Length:0
response header:X-RIM-Push-ID:pushID:1342694818991
response header:Via:MDS_5.0.3.26
response header:x-rim-multidest-push-supported:true
response header:Server:Apache-Coyote/1.1
response header:x-rim-push-persisted:fals

您正在设置请求属性,但会得到一个标题字段。那是故意的吗?就我个人而言,我希望
conn.getRequestProperty(“X-Rim-Push-ID”)
能起作用。为了澄清@Thor84no的意思,
getHeaderField()
用于获取响应头,而不是您之前设置的请求头。如果是,请问,我如何才能获取包含头和发送数据的完整http帖子?服务器的响应是200,但仍然没有将我的数据推送到blackberry@jtahlborn,@Thor84no,我怎么才能得到我提交的完整请求,就像我说的服务器的响应是200,但我在我的请求上添加了某种代理来监视http流量。我使用了一个很好的方法,我使用了一个简单的main方法来执行我的请求,我无法调试发送的请求!如何“将它发布到您自己的服务器并阅读”我可以做到吗?要将它发布到您自己的服务器上,最简单的方法是在像tomcat这样的servlet容器中使用servlet。但我不明白你为什么真的需要这个。当您在请求中写入所有数据时,您应该知道您发布的内容。您是否检查了数据的外观,是否正确编码?是否从servlet上的post方法进行处理?我说得对吗?数据被编码了!服务器返回一个200码的返回。您是否确实查看了所有的标题和可能的响应消息?从响应中读取InputStream以查看服务器返回的内容。
from server: 200 | OK


=======REQUEST===============
request header:X-Rim-Push-ID:pushID:1342694818991
request header:Host:win-uhgr7vs88uz.assabb.com:8080
request header:Content-Length:19
request header:X-Rim-Push-Title:-message
request header:User-Agent:Java/1.6.0_18
request header:POST /push?DESTINATION=bestest%40assa-associates.com&PORT=7874&REQUESTURI=/ HTTP/1.1:null
request header:Content-Type:text/html
request header:Accept:text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
request header:Connection:keep-alive
request header:X-Rim-Push-Dest-Port:7874
request header:X-Rim-Push-Type:browser-message
======Response===============
response header:Date:Thu, 19 Jul 2012 10:47:10 GMT
response header:Content-Length:0
response header:X-RIM-Push-ID:pushID:1342694818991
response header:Via:MDS_5.0.3.26
response header:x-rim-multidest-push-supported:true
response header:Server:Apache-Coyote/1.1
response header:x-rim-push-persisted:fals