cmnet 및 cmwap 액세스
public class ActionDispatcher extends MIDlet {
private Display display = Display.getDisplay(this);
private Form f;
protected void startApp() throws MIDletStateChangeException {
f = new Form("Network Test");
f.append(" , ; cmwap cmnet , , ");
display.setCurrent(f);
try {
cmwap(); // wap , wap 。 。
cmnet();
} catch (IOException e) {
e.printStackTrace();
}
f.append(" , ");
display.setCurrent(f);
}
private void cmwap() throws IOException {
HttpConnection conn = null;
InputStream is = null;
if (f.size() > 0) f.delete(0); // cmwap() , cmnet() Form.delete()
try {
conn = (HttpConnection) Connector.open("http://10.0.0.172:80/", Connector.READ_WRITE, true);
conn.setRequestProperty("X-Online-Host", "wap.sina.com");
// conn.setRequestProperty("Accept", "*/*");
is = conn.openInputStream();
f.append("cmwap: no exception, test passed");
} catch (Exception e) {
f.append("cmwap failed: " + e.toString());
} finally {
if (is != null) {
is.close();
is = null;
}
if (conn != null) {
conn.close();
conn = null;
}
f.append("
");
}
}
private void cmnet() throws IOException {
HttpConnection conn = null;
InputStream is = null;
try {
conn = (HttpConnection) Connector.open("http://wap.sina.com/", Connector.READ_WRITE, true); // timeouts - A flag to indicate that the caller wants timeout exceptions
is = conn.openInputStream();
f.append("cmnet: no exception, test passed");
} catch (Exception e) {
f.append("cmnet failed: " + e.toString());
} finally {
if (is != null) {
is.close();
is = null;
}
if (conn != null) {
conn.close();
conn = null;
}
f.append("
");
}
}
protected void pauseApp() {}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}
}
CMWAP 방식으로 접속할 때 MIDlet은 WAP 게이트웨이와 직접 연결됩니다. 주소는 10.0.0.172입니다.또한 MIDlet은 Http 헤더(Header)에 다음 정보를 추가해야 합니다. X-Online-Host: 네트워크 서버의 도메인 이름과 포트입니다. 이렇게 하면 WAP 게이트웨이가 프록시로 서버에 요청을 전달합니다.또한 User Agent와 같은 필드를 HTTP 헤더에 추가할 수 있습니다.
데모 하나 더 보내주세요.
public HttpConnection openCMWAP(String url, String contentType) throws IOException {
HttpConnection httpConn = null;
for (int i = 0; i < 5; i++) { // 5 , 5 , or
if (httpConn != null) httpConn.close();
httpConn = (HttpConnection) Connector.open(url, Connector.READ);
httpConn.setRequestMethod(HttpConnection.GET);
if (httpConn.getHeaderField("Content-Type").indexOf(contentType) > -1) {
if (httpConn.getResponseCode() == HttpConnection.HTTP_OK) {
return httpConn;
}
break;
}
}
throw new IOException("Max Connector open count.");
}
public HttpConnection openCMNET(String url, String contentType) throws IOException {
String proxy = "http://10.0.0.172";
String serverName = null;
boolean needProxy = false;
if (proxy != null && proxy.length() > 0) {
needProxy = true;
// http://servername/filename
serverName = url.substring(0, (url.indexOf("/", 7) + 1));
url = proxy + "/" + url.substring(url.indexOf("/", 7) + 1, url.length());
}
HttpConnection httpConn = null;
for (int i = 0; i < 5; i++) {
if (httpConn != null) httpConn.close();
httpConn = (HttpConnection) Connector.open(url, Connector.READ, true);
if (needProxy) {
httpConn.setRequestProperty("X-Online-Host", serverName);
httpConn.setRequestProperty("Accept", "*/*");
}
httpConn.setRequestMethod(HttpConnection.GET);
if (httpConn.getHeaderField("Content-Type").indexOf(contentType) > -1) {
if (httpConn.getResponseCode() == HttpConnection.HTTP_OK) {
return httpConn;
}
break;
}
}
throw new IOException("Max Connector open count.");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
"5G"의 비즈니스 모델ICT 비즈니스는 "지금, 미국에서 일어나고 있는 일이 3~5년 후에 일본에서 일어난다""지금 중국이 가장 진행되고 있어 그것을 쫓는 일본"이라고 생각되기 쉽지만, 5G의 비즈니스는 그렇다고는 말할 수없는 상황에 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.