有一个几经序列化好的json数据:jsoEvent = {"eventTitle":"111","eventCreatedTime":"Sat Aug 18 13:57:39 格林尼治标准时间+0800 2012","cmd":"AddEvent","now":"2012-08-18 13:57:50","eventContent":"2222"}我通过urlString eventUrl = "http://192.168.1.101:8080/TourUI/android_processAdd.ashx?a="+jsonEvent;传入服务器,通过org.apach.http包,public String getResponse(String url, DefaultHttpClient httpClient){
String strResult = null;
HttpGet httpRequest = new HttpGet(url);//到这一行就不执行了,
try {

HttpResponse httpResponse = httpClient.execute(httpRequest);
if(httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
//EntityUtils httpResponse.getEntity()
strResult = retrieveInputStream(httpResponse.getEntity());  
}
else{
strResult = "无结果";
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
strResult = "无结果1";
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
strResult = "无结果2";
e.printStackTrace();
}finally{
httpRequest.abort();//结束请求
}
return strResult;
}在这一句HttpGet httpRequest = new HttpGet(url);就不在2想下执行了,我认为是url的问题,是不是因为jsonEvent中引号的问题,求教大神该如何解决

解决方案 »

  1.   

    String eventUrl = "http://192.168.1.101:8080/TourUI/android_processAdd.ashx?a="+jsonEvent;在这句后面输出
    Log.i("test", eventUrl);看看网址到底是什么。
      

  2.   

    另外,你用的http://192.168.1.101这种局域网IP前,先测试一下你的手机或者模拟器确定可以访问这个局域网IP。
      

  3.   

    网址是没问题的,我测试了下,为这个http://192.168.1.101:8080/TourUI/android_processAdd.ashx?a={"eventTitle":"2325","eventCreatedTime":"2012-08-18 19:42:03","cmd":"AddEvent","now":"2012-08-18 19:42:12","eventContent":"258755"},我认为主要是因为url中json的引号问题,我想问的是该怎样处理这些引号,把json对象正确的传到服务器
      

  4.   

    应该是网址的问题,你试试你的手机能不能访问你的http://192.168.1.101
      

  5.   

    真不是这个问题,手机和电脑都连着路由器,我试过了,可以访问。我纠结的是如何编码url中的json,因为其中含有引号,已经纠结很久了,哪位大哥给个解决方法啊
      

  6.   

    发LogCat里面的详细出错信息。
      

  7.   

    首先测一下如果没有引号有没有问题,有的话把url编码,然后用的时候在解码
      

  8.   

    JSON中如果包含引号或双引号,会破坏JSON的格式。有两种方法可以解决。在入库的时候可以使用addslashes()函数处理一下字符串,给引号前加上斜杠。被改的字符包括单引号 (')、双引号 (")、反斜线 backslash (\) 以及空字符NULL。1
    $text = addslashes($text);
    JavaScript的话,可以这样:1
    function valueReplace(v){
    2
    v=v.toString().replace(new RegExp('(["\"])', 'g'),"\\\"");
    3
        return v;
    4
    }
    5
    var eValue = encodeURI($.trim(valueReplace(e.value)))