adnroid上怎么访问url返回数据,特殊!

adnroid上如何访问url返回数据,特殊!!http://mascwt.oicp.net:7080/Monitoring/Data/getOrgData/发个url

adnroid上如何访问url返回数据,特殊!!
"http://mascwt.oicp.net:7080/Monitoring/Data/getOrgData/"

发个url地址,望有高手能给出访问url返回数据的方法。这个url是要返回json数据。
电脑上可以访问返回,我想在android上开发,但是用android的HttpClient..方式搞不了。

拜托了。。。别人现在一直催,我搞不定啊。
[解决办法]


public static String getXMLString(String url) {
        HttpClient hc = new DefaultHttpClient();
        HttpConnectionParams.setConnectionTimeout(hc.getParams(), 4000);
//        HttpConnectionParams.setSoTimeout(hc.getParams(), 4000);
        HttpGet request = new HttpGet(url);
            HttpResponse response;
            try {
                response = hc.execute(request);
                HttpEntity entity = response.getEntity();
                if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                    return EntityUtils.toString(entity,HTTP.UTF_8);
                } else {
                    return null;
                }
            } catch (ClientProtocolException e) {
                e.printStackTrace();
                return null;
            } catch (IOException e) {


                e.printStackTrace();
                return null;
            }
    }



[解决办法]
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new AsyncTask<Void,Void,Void>() {

    @Override
    protected Void doInBackground(Void... params) {
        // TODO Auto-generated method stub
        JSONObject jObject = getJSONfromURL("http://mascwt.oicp.net:7080/Monitoring/Data/getOrgData/");
        return null;
    }
}.execute();
}
  public JSONObject getJSONfromURL(String url) {

// 初始化
InputStream is = null;
String result = "";
JSONObject jArray = null;

// http post
try {
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost(url);
    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();
    is = entity.getContent();

} catch (Exception e) {
    Log.e("log_tag", "Error in http connection " + e.toString());
}

// 转换response到string
try {
    BufferedReader reader = new BufferedReader(new InputStreamReader(
            is, "iso-8859-1"), 8);
    StringBuilder sb = new StringBuilder();
    String line = null;
    while ((line = reader.readLine()) != null) {
        sb.append(line + "\n");
    }
    is.close();
    result = sb.toString();
} catch (Exception e) {
    Log.e("log_tag", "Error converting result " + e.toString());


}

// 解析string到JSON对象
try {
    jArray = new JSONObject(result);
} catch (JSONException e) {
    Log.e("log_tag", "Error parsing data " + e.toString());
}

return jArray;
[解决办法]
第一层,WebClient


public class WebClient{
//...
public WebClient() {
Log.v(TAG, "初始化");
timeout = 5 * 1000;
bufferSize = 8192;
encode = "UTF-8";
httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, timeout);
HttpConnectionParams.setSoTimeout(httpParams, timeout);
HttpConnectionParams.setSocketBufferSize(httpParams, bufferSize);
HttpClientParams.setRedirecting(httpParams, true);
httpClient = new DefaultHttpClient(httpParams);
}

public String doGet(String url) throws Exception {
return doGet(url, null);
}

public String doGet(String url, Map<String, String> params)
throws Exception {
// 添加QueryString
String paramStr = "";
if (params != null) {
Iterator<Entry<String, String>> iter = params.entrySet().iterator();
while (iter.hasNext()) {
Entry<String, String> entry = (Entry<String, String>) iter
.next();
paramStr += "&" + entry.getKey() + "="
+ URLEncoder.encode(entry.getValue(), encode);
}
if (paramStr.length() > 0)
paramStr.replaceFirst("&", "?");
url += paramStr;
}
// 创建HttpGet对象
HttpGet get = new HttpGet(url);
Log.i("doGet " + "URL ", url);
try {
String strResp = "";
// 发起请求
HttpResponse resp = httpClient.execute(get);
if (resp.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK)
strResp = EntityUtils.toString(resp.getEntity());
else
// 如果返回的StatusCode不是OK则抛异常
throw new Exception("Error Response:"
+ resp.getStatusLine().toString());
Log.i("doGet Response ", strResp);
return strResp;
} finally {
get.abort();
}
}
//...
}


第二层, Services
 


public class MyServices extends Service {
private static final String TAG = "MyServices";

private WebClient client;

@Override
public void onCreate() {
Log.v(TAG, "onCreate");
this.client = new WebClient();
}

@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
Log.v(TAG, "onBind");
return null;
}

@Override
public void onStart(Intent intent, int startId) {
Log.v(TAG, "onStart");

if (intent != null) {
final Bundle bundle = intent.getExtras();
if (bundle != null) {

int flag = bundle.getInt("flag");
switch (flag) {
case 999:{
new Thread() {
@Override
public void run() {
Log.v(TAG + "onStart", "mascwt");
mascwt();
}
}.start();
break;
}
default:
Log.w(TAG + "onStart", "为匹配的case");
}

}
}

}

@Override
public void onDestroy() {
super.onDestroy();
Log.v(TAG, "onDestroy");
}

public void mascwt(){
String str = "";
try {
str = client.doGet("http://mascwt.oicp.net:7080/Monitoring/Data/getOrgData/");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent broadIntent = new Intent();
broadIntent.setAction("com.ytu.enetmobile.servicesBroadcast");
Bundle bundle = new Bundle();
bundle.putString("mascwt", str);
bundle.putInt("flag", 999);
broadIntent.putExtras(bundle);
sendBroadcast(broadIntent);
}


}



第三层, UI

public class ConnectionTestActivity extends Activity {
//...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_connectiontest);

tv_1 = (TextView) this.findViewById(R.id.tv_1);

receiver = new DataReceiver();
}

@Override
public void onStart() {
super.onStart();
if (null == receiver) {
receiver = new DataReceiver();
}
IntentFilter filter = new IntentFilter();// 创建IntentFilter对象


filter.addAction("com.ytu.enetmobile.servicesBroadcast");
this.registerReceiver(receiver, filter);
}

public void onClick(View view) {
switch (view.getId()) {
case R.id.button2: {
Intent intent = new Intent(
"com.ytu.enetmobile.services.enetservices");
Bundle bundle = new Bundle();
bundle.putInt("flag", 999);
intent.putExtras(bundle);

startService(intent);
break;
}
}

}

class DataReceiver extends BroadcastReceiver {
public static final String TAG = "DataReceiver";

@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
switch (bundle.getInt("flag")) {
case 999: {
String str = intent.getStringExtra("mascwt");
tv_1.setText(str);
break;
}
default:
Log.v(TAG + "onReceive", "未匹配的case");
break;

}
}
}
}



运行结果
adnroid上怎么访问url返回数据,特殊!
测试结果:
真机测试OK.
有乱码, 推测为编码问题.