我通过以下方式使用 HTTP 连接:
HttpConnection _httpConnection = null;
try {
_httpConnection = (HttpConnection)Connector.open(_url);
} catch(Exception e) { }
byte [] postDataBytes = _postData.getBytes();
_httpConnection.setRequestMethod(HttpConnection.POST);
_httpConnection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
_httpConnection.setRequestProperty("Content-Language", "en-US");
_httpConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
_httpConnection.setRequestProperty("Connection", "close");
_httpConnection.setRequestProperty("Content-Length", Integer.toString(_postData.getBytes().length));
os = _httpConnection.openOutputStream();
os.write(postDataBytes);
os.flush();
此 HTTP 连接需要参数才能成功打开。例如,在 WIFI 网络上,它需要将“;deviceside=true;interface=wifi”添加到 URL。
问题出在 EDGE 连接上。每个国家都需要添加不同的参数。例如在黎巴嫩,它需要“;deviceside=false”,但在 KSA 中,如果我添加此参数,则连接将无法打开。在美国,它需要不同类型的参数。问题是如何为所有具有相同参数的国家/地区建立 HTTP 连接。这样无论下载到哪里,应用程序都能成功连接到互联网。