【发布时间】:2012-11-14 10:27:00
【问题描述】:
使用以下代码,服务器受到攻击,但我也想在 POST 方法中发送变量。
但它只是给了我一个空指针异常。它与OutputStream 有关。我检查了postData ...它有一些地址,这意味着它不为空。
那为什么给我空指针异常呢?
ConnectionFactory connFact = new ConnectionFactory();
ConnectionDescriptor connDesc;
try {
connDesc = connFact.getConnection("http://example.com/login.php", Connector.READ_WRITE, returnContent);
httpConn.setRequestMethod(HttpConnection.POST);
httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
URLEncodedPostData encPostData = new URLEncodedPostData("UTF-8", false);
encPostData.append("count", "Hell Yeah!");
byte[] postData = encPostData.toString().getBytes("UTF-8");
httpConn.setRequestProperty("Content-length", String.valueOf(postData.length));
Dialog.alert("Post Data: " + postData);
OutputStream os = httpConn.openOutputStream();
os.write(postData);
os.flush();
httpConn = (HttpConnection) connDesc.getConnection();
final int iResponseCode = httpConn.getResponseCode();
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
//Dialog.alert("Response code: " + Integer.toString(iResponseCode));
}
});
} catch (IOException e) {
System.err.println("Caught IOException: " + e.getMessage());
}
【问题讨论】:
-
哪一行出错了?
-
在这一行:httpConn.setRequestMethod(HttpConnection.POST);
-
你到底在哪里声明变量
httpConn?你不应该打电话给connDesc.getConnection吗? -
上面是ConnectionFactory,HttpConnection httpConn;没有它的工作正常:connFact.getConnection
标签: blackberry nullpointerexception http-post