我再使用快递100的api是出现的返回乱码的问题
大家给帮着看看
源码import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class kuaidi100
{

public static void main(String[] agrs)
{

try
{
URL url= new URL("http://api.kuaidi100.com/api?id=1620f21aeedbecb6&com=yunda&nu=1200426997047&show=3&muti=1&order=desc");
URLConnection con=url.openConnection();
 con.setAllowUserInteraction(false);
   InputStream urlStream = url.openStream();
   String type = con.guessContentTypeFromStream(urlStream);
   String charSet=null;
   if (type == null)
    type = con.getContentType();    if (type == null || type.trim().length() == 0 || type.trim().indexOf("text/html") < 0)
    return ;    if(type.indexOf("charset=utf-8") > 0)
    charSet = type.substring(type.indexOf("charset=utf-8") + 8);    byte b[] = new byte[10000];
   int numRead = urlStream.read(b);
   
  String content = new String(b, 0, numRead);
   while (numRead != -1) {
    numRead = urlStream.read(b);
    if (numRead != -1) {
     //String newContent = new String(b, 0, numRead);
     String newContent = new String(b, 0, numRead, charSet);
     content += newContent;
    }
   }
  System.out.println("content:" + content);
   urlStream.close();
} catch (MalformedURLException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
System.out.println("run OK");
}}下面是输出结果
content:2012-01-07 19:45:50 闄曡タ姹変腑鍏徃鍩庡尯涓夊垎閮?鐢?璧垫案宄?绛炬敹
2012-01-07 09:37:48 闄曡タ姹変腑鍏徃鍩庡尯涓夊垎閮?寮?娲鹃?
2012-01-06 22:36:03 闄曡タ姹変腑鍏徃鍩庡尯涓夊垎閮?娲鹃?鎵弿锛屼笂绾у湴鐐?
2012-01-06 18:10:00 闄曡タ姹変腑鍏徃:鍙戝線 闄曡タ姹変腑鍏徃鍩庡尯涓夊垎閮?2012-01-05 21:04:52 闄曡タ瑗垮畨涓浆绔?杩涜涓浆 , 骞跺彂寰?闄曡タ姹変腑鍏徃
2012-01-05 17:56:38 闄曡タ瑗垮畨涓浆绔?鍒拌揪, 涓婄骇鍦扮偣 
2012-01-04 09:27:39 婀栧寳姝︽眽涓浆绔?杩涜涓浆 , 骞跺彂寰?闄曡タ瑗垮畨涓浆绔?2012-01-04 08:48:17 婀栧寳姝︽眽涓浆绔?鍒拌揪, 涓婄骇鍦扮偣 婀栧崡闀挎矙涓浆绔?2012-01-03 21:47:30 婀栧崡闀挎矙涓浆绔?杩涜涓浆 , 骞跺彂寰?婀栧寳姝︽眽涓浆绔?2012-01-03 21:40:52 婀栧崡闀挎矙涓浆绔?鑸┖鎵弿 , 骞跺彂寰?闄曡タ瑗垮畨鍏徃
2012-01-03 20:36:06 婀栧崡闀挎矙宀抽簱鍖哄ぇ瀛﹀煄浜屽叕鍙?鎻芥敹
run OK

解决方案 »

  1.   

    你直接浏览器去看看你要访问的页面,研究下它的编码是什么格式的,比如是不是 GBK?然后你需要根据它的编码进行转码。
      

  2.   

    话说,你直接用HttpClient吧,取页面、编码、管理Cookie啥的都会帮你自动搞定,何必自己写这么多网络连接的代码