private static String sendData(ArrayList<NetworkData> data) throws Exception {
HttpPost request = makeHttpPost(data);
HttpClient client = new DefaultHttpClient();
BasicResponseHandler reshandler = new BasicResponseHandler();
String result = client.execute(request, reshandler);
return result;
}
private static HttpPost makeHttpPost(ArrayList<NetworkData> data) throws Exception {
HttpPost request = new HttpPost("http://......");
Vector<BasicNameValuePair> nameValue = new Vector<BasicNameValuePair>();
for (int i = 0; i < data.size(); i++) {
nameValue.add(new BasicNameValuePair(data.get(i).tag, data.get(i).data));
}
request.setEntity( makeEntity(nameValue) );
return request;
}
private static HttpEntity makeEntity(Vector<BasicNameValuePair> nameValue) throws Exception {
HttpEntity result = null;
try {
result = new UrlEncodedFormEntity(nameValue, HTTP.UTF_8);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return result;
}
public void xml() {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser parser = factory.newPullParser();
parser.setInput(new StringReader(sendData(data)));
int eventType = parser.getEventType();
String tag = "";
Log.i("XML_Loading", sendData(data));
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
case XmlPullParser.END_DOCUMENT:
case XmlPullParser.END_TAG:
break;
case XmlPullParser.START_TAG:
break;
case XmlPullParser.TEXT:
break;
......
대략 소스는 이런식이구요.
위의 Log.i("XML_Loading", sendData(data)); 이부분으로 로그를 찍어보면 xml은 제대로 넘어오고, 값도 제대로 파싱되서 짤리긴 하는데, 넘어온 한글이 깨지더라고요..
어떻게 해야 한글을 제대로 받을수 있나요?
참고로 xml은 utf-8형식으로 넘어옵니다.
get방식으로 받으면 한글이 제대로 들어옵니다.
get방식 소스는 참고로 아래와 같습니다.
// URL url = new URL("http://.....");
// XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// XmlPullParser parser = factory.newPullParser();
// URLConnection uc = url.openConnection();
// uc.setConnectTimeout(10000);
// uc.setReadTimeout(10000);
// InputStream is = uc.getInputStream();
// parser.setInput(is, "utf-8");
서버에서 xml 을 생성할 때 UTF-8 형태인지 확인해보세요