2016-04-11 36 views
0

Temel işlevleri olan bir çevrimiçi DB'ye bağlandığım ve uyguladığım (al, ekle, güncelleştir, güncelleştir) JSON ve "http yolu" kullanarak yaptım ve her şey iyi çalışıyor, şimdi istiyorum kodumu volley'e taşıyorum ancak post yöntemleriyle ilgili bazı problemlerim var.POST yöntemini Volley'e dönüştürme

Bu benim eski kod, yeni olsun yöntemlerine

case "3"://insert 
try { 
        HttpURLConnection urlConn; 
        DataOutputStream printout; 
        DataInputStream input; 
        miurl = new URL(cadena); 
        urlConn = (HttpURLConnection) miurl.openConnection(); 
        urlConn.setDoInput(true); 
        urlConn.setDoOutput(true); 
        urlConn.setUseCaches(false); 
        urlConn.setRequestProperty("Content-Type", "application/json"); 
        urlConn.setRequestProperty("Accept", "application/json"); 
        urlConn.connect(); 

        JSONObject jsonParam = new JSONObject(); 
        jsonParam.put("name", params[2]); 
        jsonParam.put("email",params[3]); 

        OutputStream os = urlConn.getOutputStream(); 
        BufferedWriter writer = new BufferedWriter(
        new OutputStreamWriter(os, "UTF-8")); 
        writer.write(jsonParam.toString()); 
        writer.flush(); 
        writer.close(); 

        int respuesta = urlConn.getResponseCode(); 


        StringBuilder result = new StringBuilder(); 

        if (respuesta == HttpURLConnection.HTTP_OK) { 

         String line; 
         BufferedReader br=new BufferedReader(new InputStreamReader(urlConn.getInputStream())); 
         while ((line=br.readLine()) != null) { 
          result.append(line); 
         } 

         JSONObject respuestaJSON = new JSONObject(result.toString()); 

         String resultJSON = respuestaJSON.getString("status"); 

         if (resultJSON == "1") {  
          answer = "Ok!"; 

         } else if (resultJSON == "2") { 
          answer = "Error"; 
         } 

        } 

       } catch (MalformedURLException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 

       return answer; 

       ... 

    @Override 
    protected void onPostExecute(String s) { 
     tv_answer.setText(s); 
     //super.onPostExecute(s); 
    } 

ve voleybol

case R.id.btn_insert: 
      url = INSERT; 
      StringRequest postRequest = new StringRequest(Request.Method.POST, url, 
        new Response.Listener<String>() 
        { 
         @Override 
         public void onResponse(String response) { 
          tv_answer.setText(response); 
         } 
        }, 
        new Response.ErrorListener() 
        { 
         @Override 
         public void onErrorResponse(VolleyError error) { 
          tv_answer.setText("That didn't work!"); 
         } 
        } 
      ) { 
       @Override 
       protected Map<String, String> getParams() 
       { 
        Map<String, String> params = new HashMap<String, String>(); 
        headers.put("name", et_name.getText().toString()); 
        headers.put("email", et_email.getText().toString()); 

        return params; 
       } 

       @Override 
       public Map<String, String> getHeaders() throws AuthFailureError { 
        Map<String,String> params = new HashMap<String, String>(); 
        params.put("Content-Type", "application/json"); 
        params.put("Accept", "application/json"); 

        return params; 
       } 
      }; 
      queue.add(postRequest); 
      break; 

kullanmaya çalışıyor yenisi olarak çalışıyor edilir Ve ben sadece bana söyleyen bir SQL önemli hata olsun Bu sütunlar boş olamaz, başka bir deyişle, işlevim iki boş anahtarlar gönderiyor, ben uzman değilim, ben öğreticilerden biraz yardım alarak ilk kısmı yaptım, şimdi biraz kayboldum

cevap

0

yalnızca örnek vermek için JSONObjectRequest yerine StringRequest kullanın, örnek olarak

numaralı telefona json gönderin