2013-08-06 2 views
4

Я пытаюсь отправить данные JSON из приложения Android на сервер. База данных - это 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 я мог видеть значения в «запросе», но он дает ошибку при выполнении последнего HttpResponse response = client.execute(request);. Я очень новичок в этом, поэтому не уверен, что я что-то упустил. Также я пытаюсь проверить сервер rails, если какой-либо запрос получен. Там ничего не началось. Пожалуйста, порекомендуйте. Благодарю.

+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

Смежные вопросы