您必須使用HTTPConnetion
將所有連接參數添加到您的URL中。創建一個自定義類來檢查連接參數。使用以下。
public class HttpConnectionImpl
extends impl.javame.com.twitterapime.io.HttpConnectionImpl {
private static String appendConnectionParameters;
private static String connectionParameters;
private static ServiceRecord getWAP2ServiceRecord() {
String cid;
String uid;
ServiceBook sb = ServiceBook.getSB();
ServiceRecord[] records = sb.getRecords();
//
for (int i = records.length -1; i >= 0; i--) {
cid = records[i].getCid().toLowerCase();
uid = records[i].getUid().toLowerCase();
//
if (cid.indexOf("wptcp") != -1
&& uid.indexOf("wifi") == -1
&& uid.indexOf("mms") == -1) {
return records[i];
}
}
//
return null;
}
public static String getConnectionParams() {
String connParams = "";
//
if (connectionParameters != null) {
connParams = connectionParameters;
} else {
if (WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED) {
connParams = ";interface=wifi"; //Connected to a WiFi access point.
} else {
int coverageStatus = CoverageInfo.getCoverageStatus();
//
if ((coverageStatus & CoverageInfo.COVERAGE_BIS_B) == CoverageInfo.COVERAGE_BIS_B) {
connParams = ";deviceside=false;ConnectionType=mds-public";
} else if ((coverageStatus & CoverageInfo.COVERAGE_DIRECT) == CoverageInfo.COVERAGE_DIRECT) {
// Have network coverage and a WAP 2.0 service book record
ServiceRecord record = getWAP2ServiceRecord();
//
if (record != null) {
connParams = ";deviceside=true;ConnectionUID=" + record.getUid();
} else {
connParams = ";deviceside=true";
}
} else if ((coverageStatus & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS) {
// Have an MDS service book and network coverage
connParams = ";deviceside=false";
}
}
//
if (appendConnectionParameters != null) {
connParams += appendConnectionParameters;
}
}
//
return connParams;
}
public static void setAppendConnectionParameters(String params) {
if (params != null && !params.startsWith(";")) {
params = ";" + params;
}
//
appendConnectionParameters = params;
}
public static void setConnectionParameters(String params) {
if (params != null && !params.startsWith(";")) {
params = ";" + params;
}
//
connectionParameters = params;
}
public void open(String url) throws IOException {
super.open(url + getConnectionParams());
}
}
以上級合併後u必須作出一個包名稱impl.javame.com.twitterapime.io
並添加下面的類。
`package impl.javame.com.twitterapime.io; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.microedition.io.Connector; import com.twitterapime.io.HttpConnection;
public class HttpConnectionImpl implements HttpConnection private javax.microedition.io.HttpConnection httpConn;
public void open(String url) throws IOException {
httpConn =
(javax.microedition.io.HttpConnection)
Connector.open(url, Connector.READ_WRITE, true);
}
public void close() throws IOException {
httpConn.close();
}
public int getResponseCode() throws IOException {
return httpConn.getResponseCode();
}
public InputStream openInputStream() throws IOException {
return httpConn.openInputStream();
}
public OutputStream openOutputStream() throws IOException {
return httpConn.openOutputStream();
}
public void setRequestMethod(String method) throws IOException {
httpConn.setRequestMethod(method);
}
public void setRequestProperty(String key, String value) throws IOException{
httpConn.setRequestProperty(key, value);
}
public String getRequestProperty(String key) throws IOException {
return httpConn.getRequestProperty(key);
}
public String getHeaderField(String name) throws IOException {
return httpConn.getHeaderField(name);
}
}`
現在你必須整合另外兩個類
- 的HttpConnection
- HttpResponsein
com.twitterapime.io
包。
`package com.twitterapime.io; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public interface HttpConnection public static final String GET =「GET」;
public static final String POST = "POST";
public static final String HEAD = "HEAD";
public static final int HTTP_OK = 200;
public static final int HTTP_FORBIDDEN = 403;
public static final int HTTP_UNAVAILABLE = 503;
public static final int HTTP_NOT_MODIFIED = 304;
public static final int HTTP_BAD_REQUEST = 400;
public static final int HTTP_UNAUTHORIZED = 401;
public static final int HTTP_NOT_FOUND = 404;
public static final int HTTP_NOT_ACCEPTABLE = 406;
public static final int HTTP_INTERNAL_ERROR = 500;
public static final int HTTP_BAD_GATEWAY = 502;
public void open(String url) throws IOException;
public void close() throws IOException;
public int getResponseCode() throws IOException;
public InputStream openInputStream() throws IOException;
public OutputStream openOutputStream() throws IOException;
public void setRequestMethod(String method) throws IOException;
public void setRequestProperty(String key, String value) throws IOException;
public String getRequestProperty(String key) throws IOException;
public String getHeaderField(String name) throws IOException;
Bwlow是的HttpResponse Class`
`包com.twitterapime。IO;
import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException;
public final class HttpResponse私有int代碼;
private String body;
private InputStream stream;
private HttpConnection conn;
HttpResponse(HttpConnection conn) throws IOException {
this.conn = conn;
code = conn.getResponseCode();
stream = conn.openInputStream();
}
public boolean wasSuccessful() {
return code >= 200 && code < 400;
}
public String getBodyContent() throws IOException {
return body != null ? body : (body = parseBody(stream));
}
public InputStream getStream() {
return stream;
}
public int getCode() {
return code;
}
public String getResponseField(String key) throws IOException {
return conn.getRequestProperty(key);
}
private String parseBody(InputStream in) throws IOException {
if (in == null) {
return null;
}
//
ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];
//
for (int n; (n = in.read(buffer)) > 0;) {
out.write(buffer, 0, n);
}
//
try {
return new String(out.toByteArray(), "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new IOException(e.getMessage());
}
}
}`
使用下面馬託檢查您的引黃參數。此方法會自動檢查您的設備連接可用性並根據您的連接添加連接參數。
protected HttpConnection getConnection(String url) throws IOException {
url += HttpConnectionImpl.getConnectionParams();
//
return (HttpConnection)Connector.open(url);
}
以上HttpConnection
方法的返回URL與引黃參數..比ü可以使用這個引黃在YOUT InputStream
,打開任何URL以及web服務。
我希望這會幫助你...
您是否檢查Device中的連接..?如果可以的話。首先檢查設備的默認瀏覽器,以提供諸如「http://www.google.com」之類的內容。如果瀏覽器不工作,那就是你的DEVICE問題。 – alishaik786 2012-01-13 12:24:38
設備連接到WIFI,我可以打開谷歌,Facebook和任何網站。順便說一句,我想我正在聽到一條線索。好像我需要在Web服務URL之後放置參數like; deviceside = false。 (但我還沒有嘗試過。) – NandNand 2012-01-13 14:44:11