안드로이드 애플리케이션 개발 - 네트워크 프로그래밍
네트워크 이미지 뷰어
URL url = new URL(address);
// ,
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// ,
conn.setRequestMethod("GET");
//
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
// ,
conn.connect();
// 200,
if(conn.getResponseCode() == 200){
}
//
InputStream is = conn.getInputStream();
// ,
Bitmap bm = BitmapFactory.decodeStream(is);
ImageView iv = (ImageView) findViewById(R.id.iv);
iv.setImageBitmap(bm);
에 표시<uses-permission android:name="android.permission.INTERNET"/>
네트워크 요청
주 스레드 차단
메시지 대기열 메커니즘
android.os.Handler handler = new android.os.Handler(){
// Looper, , , , , UI
public void handleMessage(Message msg) {
}
};
// , handler.obtainMessage() new
Message msg = handler.obtainMessage();
// obj ,
msg.obj = bm;
//what , ,
msg.what = 1;
//
handler.sendMessage(msg);
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
// 1,
case 1:
ImageView iv = (ImageView) findViewById(R.id.iv);
Bitmap bm = (Bitmap) msg.obj;
iv.setImageBitmap(bm);
break;
case 2:
Toast.makeText(MainActivity.this, " ", 0).show();
break;
}
}
캐시 이미지 추가 기능
InputStream is = conn.getInputStream();
FileOutputStream fos = new FileOutputStream(file);
byte[] b = new byte[1024];
int len = 0;
while((len = is.read(b)) != -1){
fos.write(b, 0, len);
}
fos.close();
Bitmap bm = BitmapFactory.decodeFile(file.getAbsolutePath());
소스 코드를 가져오는 사이트
<com.loopj.android.image.SmartImageView/>
SmartImageView siv = (SmartImageView) findViewById(R.id.siv);
siv.setImageUrl("http://192.168.1.102:8080/dd.jpg");
Html 소스 뷰어
URL url = new URL(path);
// ,
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
// conn.connect();
// getResponseCode() ,
if(conn.getResponseCode() == 200){
}
InputStream is = conn.getInputStream();
byte[] b = new byte[1024];
int len = 0;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while((len = is.read(b)) != -1){
//
bos.write(b, 0, len);
}
//
//Android utf-8
text = new String(bos.toByteArray());
무분별한 처리
//
text = new String(bos.toByteArray(), "gb2312");
데이터 제출
GET 방식으로 데이터 전송
final String path = "http://192.168.1.104/Web/servlet/CheckLogin?name=" + name + "&pass=" + pass;
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setReadTimeout(5000);
conn.setConnectTimeout(5000);
if(conn.getResponseCode() == 200){
}
final String path = "http://192.168.1.104/Web/servlet/CheckLogin?name=" + URLEncoder.encode(name) + "&pass=" + pass;
POST 방식으로 데이터 전송
// post
String data = "name=" + URLEncoder.encode(name) + "&pass=" + pass;
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", data.length() + "");
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
os.write(data.getBytes());
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.