我正在尝试 json 解析,但是当解析时给出错误 httppost 方法不受此 url 支持我在这里写下我的代码
SearchListActivity.java
public class SearchlistActivity extends Activity {
private static String url="http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q=restaurants&rsz=8&sll=-27.5595451,-48.6206452&radius=1000&output=json/"; private static final String TAG_RESULTS = "results"; private static final String TAG_RESPONSEDATA="responseData";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.e("json ----","urlll---->"+url);
//JSONArray results = null;
JSONArray responseData=null;
// Hashmap for ListView
ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>();
// Creating JSON Parser instance
JsonParserSearch jParser = new JsonParserSearch();
// getting JSON string from URL
JSONObject json = jParser.getJSONFromUrl(url);
try {
// Getting Array of Contacts
responseData = json.getJSONArray(TAG_RESPONSEDATA);
Log.e("jsonnn data","sfsssss00000-------->"+responseData);
}
catch (JSONException e) {
e.printStackTrace();
}
} }
>
Jsonparsersearch.java
公共类 JsonParserSearch { 静态 InputStream is = null; 静态 JSONObject jObj = null; 静态字符串 json = "";
// constructor public JsonParserSearch() { } public JSONObject getJSONFromUrl(String url) { // Making HTTP request try { // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 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(); json = sb.toString(); Log.e("json object url","display"+json); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } // try parse the string to a JSON object try { jObj = new JSONObject(json); } catch (JSONException e) { Log.e("JSON Parser finaal", "Error parsing data " + e.toString()); } // return JSON String return jObj; } }
> > > lOGCAT ERROR
> > >
> > > 11-09 12:23:17.700: E/json ----(481): urlll---->http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q=restaurants&rsz=8&sll=-27.5595451,-48.6206452&radius=1000&output=json 11-09 12:23:18.260: E/json object url(481): display<HTML> 11-09
> > 12:23:18.260: E/json object url(481): <HEAD> 11-09 12:23:18.260:
> > E/json object url(481): <TITLE>HTTP method POST is not supported by
> > this URL</TITLE> 11-09 12:23:18.260: E/json object url(481): </HEAD>
> > 11-09 12:23:18.260: E/json object url(481): <BODY BGCOLOR="#FFFFFF"
> > TEXT="#000000"> 11-09 12:23:18.260: E/json object url(481): <H1>HTTP
> > method POST is not supported by this URL</H1> 11-09 12:23:18.260:
> > E/json object url(481): <H2>Error 405</H2> 11-09 12:23:18.260: E/json
> > object url(481): </BODY> 11-09 12:23:18.260: E/json object url(481):
> > </HTML> 11-09 12:23:18.260: E/JSON Parser finaal(481): Error parsing
> > data org.json.JSONException: Value <HTML> of type java.lang.String
> > cannot be converted to JSONObject 11-09 12:23:18.270:
> > D/AndroidRuntime(481): Shutting down VM 11-09 12:23:18.270:
> > W/dalvikvm(481): threadid=1: thread exiting with uncaught exception
> > (group=0x4001d800) 11-09 12:23:18.290: E/AndroidRuntime(481): FATAL
> > EXCEPTION: main 11-09 12:23:18.290: E/AndroidRuntime(481):
> > java.lang.RuntimeException: Unable to start activity
> > ComponentInfo{com.example.ssss/com.example.ssss.SearchlistActivity}:
> > java.lang.NullPointerException 11-09 12:23:18.290:
> > E/AndroidRuntime(481): at
> > android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
> > 11-09 12:23:18.290: E/AndroidRuntime(481): at
> > android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
> > 11-09 12:23:18.290: E/AndroidRuntime(481): at
> > android.app.ActivityThread.access$2300(ActivityThread.java:125)