2013-08-06 95 views
4

我正嘗試從我的Android應用程序向服務器發送JSON數據。數據庫是MySQL,ROR用於服務器端代碼。以下是用於發送數據的代碼。無法將JSON數據從Android發送到ROR服務器

try{ 


       JSONObject json = new JSONObject(); 
       json.put("id", "1"); 
       json.put("catname", "gaurav"); 
       json.put("catstart", "01012013"); 
       json.put("catend", "01012013"); 
       json.put("catvisible", "Y"); 
       HttpParams httpParams = new BasicHttpParams(); 
       HttpConnectionParams.setConnectionTimeout(httpParams, 
         5000); 
       HttpConnectionParams.setSoTimeout(httpParams, 5000); 

       HttpClient client = new DefaultHttpClient(httpParams); 

       String url = "http://192.168.1.9/3000/categories/create"; 

       HttpPost request = new HttpPost(url); 
       request.addHeader("Accept","application/json"); 
       request.addHeader("Content-Type","application/json"); 
       request.setEntity(new ByteArrayEntity(json.toString().getBytes(
         "UTF8"))); 
       //request.setHeader("json", json.toString()); 
       HttpResponse response = client.execute(request); 

這裏192.168.1.9是我的機器IP地址。在Eclipse上調試時,我可以在'request'中看到值,但是在執行最後一個HttpResponse response = client.execute(request);時發生錯誤。我對此很新,所以不確定我是否缺少一些東西。此外,我正試圖檢查軌道服務器是否收到任何請求。沒有什麼在那裏開始的請指教。謝謝。

+1

什麼錯誤它給你? –

+1

你給互聯網許可嗎? – Rohit

+0

發佈完整的代碼。你在ui線程上做網絡相關的操作還是你使用asynctask? – Raghunandan

回答

0

我認爲這個問題是在URL中。 。請嘗試更改

http://192.168.1.9/3000/categories/create 

到:

http://192.168.1.9:3000/categories/create 

希望幫助,

+0

謝謝。這工作。 – Gaurav

0

發送您的JSON對象在BasicNameValuePair //這裏瘢痕,是的shortValue JSON

DefaultHttpClient client1 = new DefaultHttpClient(); 
       List<NameValuePair> params1 = new ArrayList<NameValuePair>(); 
       params1.add(new BasicNameValuePair("q",sear)); 
       params1.add(new BasicNameValuePair("o",shortvalue)); 
       params1.add(new BasicNameValuePair("p","1")); 
       params1.add(new BasicNameValuePair("filter_on",String.valueOf(jarry))); 

       String paramString = URLEncodedUtils.format(params1, "utf-8"); 
       HttpGet httpGet = new HttpGet(servername+"search/"+"?" + paramString); 
       //httpGet.setHeader("Cookie","_bb_vid="+""+Vis_id12); 
       try { 
        httpResponse = client1.execute(httpGet); 
        HttpEntity httpEntity = httpResponse.getEntity(); 
        responseCode = httpResponse.getStatusLine().getStatusCode(); 
        String line = null; 

        BufferedReader reader1 = null; 
        try 
        { 
         reader1 = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "UTF-8")); 
        } 
        catch (Exception e) 
         { 
          // TODO: handle exception 
          exp_Message="Search.java"+" "+e+" "+e.getMessage()+" "+Log.getStackTraceString(e); 
          Writefile(); 
         } 

        while ((line = reader1.readLine()) != null) 
        { 
         try { 
          filObject = new JSONObject(line); 
         } catch (JSONException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
          exp_Message="Search.java"+" "+e+" "+e.getMessage()+" "+Log.getStackTraceString(e); 
          Writefile(); 
         } 
         catch (Exception e) 
         { 
          // TODO: handle exception 
          exp_Message="Search.java"+" "+e+" "+e.getMessage()+" "+Log.getStackTraceString(e); 
          Writefile(); 
         } 
        } 


        searchJsonObject=filObject; 

        checkfil=true; 

       } catch (Exception e) { 
        // TODO: handle exception 
        exp_Message="Search.java"+" "+e+" "+e.getMessage()+" "+Log.getStackTraceString(e); 
        Writefile(); 
       } 
+0

謝謝。將按照建議嘗試。 – Gaurav

相關問題