2016-04-25 3 views
2

Ich habe Forschung darüber über, wie eine Anfrage zu posten und Antwort vom Server gleichzeitig, die ich endlich zu einigen vernünftigen Durchlauf erhalten, aber es funktioniert nicht. Bitte freundlich helfen.Kann nicht android Beitrag Anfrage an den Server zu verarbeiten und das Ergebnis zurück zu Android

 button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     try{ 
     process(); 
    } catch(Exception ex){ 
Log.e("Url Error Encoding", "Url Error Encoding"); 
     } 
    } 
}); 
    } 

public void process() throws UnsupportedEncodingException{ 

    Prog = spinner1.getSelectedItem().toString(); 
    Dept = spinner2.getSelectedItem().toString(); 
    Session = spinner3.getSelectedItem().toString(); 
    Semester = spinner4.getSelectedItem().toString(); 
    Level = spinner5.getSelectedItem().toString(); 
    Matric = matric.getText().toString(); 

    SharedPreferences sharedPreferences = getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE); 
    College = sharedPreferences.getString(Config.COLLEGE_SHARED_PREF,"Not Available"); 

    // Toast.makeText(ProfileActivity.this, Matric + College, Toast.LENGTH_SHORT).show(); 
    // content.setText(Prog); 


    String data = URLEncoder.encode("program", "UTF-8") 
      + "=" + URLEncoder.encode(Prog, "UTF-8"); 

    data += "&" + URLEncoder.encode("dept", "UTF-8") + "=" 
      + URLEncoder.encode(Dept, "UTF-8"); 

    data += "&" + URLEncoder.encode("session", "UTF-8") + "=" 
      + URLEncoder.encode(Session, "UTF-8"); 

    data += "&" + URLEncoder.encode("semester", "UTF-8") + "=" 
      + URLEncoder.encode(Semester, "UTF-8"); 

    data += "&" + URLEncoder.encode("level", "UTF-8") + "=" 
      + URLEncoder.encode(Level, "UTF-8"); 

    data += "&" + URLEncoder.encode("college", "UTF-8") + "=" 
      + URLEncoder.encode(College, "UTF-8"); 

    data += "&" + URLEncoder.encode("matric", "UTF-8") + "=" 
      + URLEncoder.encode(Matric, "UTF-8"); 

    String text = ""; 
    BufferedReader reader=null; 

    try{ 

// Daten senden

 URL url = new URL("http://www.example.com/locator/checkresult.php"); 

     // Send POST data request 

     URLConnection conn = url.openConnection(); 
     conn.setDoOutput(true); 
     OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
     wr.write(data); 
     wr.flush(); 

     // Get the server response 

     reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 

     // Read Server Response 
     while((line = reader.readLine()) != null) 
     { 
      // Append server response in string 
      sb.append(line + "\n"); 
     } 

     text = sb.toString(); 



    } catch(Exception ex){ 

     ex.printStackTrace(); 
       } 
finally { 
     try 
     { 
      reader.close(); 
     } 

     catch(Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

    // Show response on activity 
    content.setText(text); 

} 

Mein PHP-Code

 <?php 

mysql_connect("localhost", "root", "zzz") or die(mysql_error()); 
mysql_select_db("sis"); 
$conn = mysql_connect("localhost", "root", "zzz"); 

$college = urldecode($_POST['college']); 

$program = urldecode($_POST['program']); 
$level = urldecode($_POST['level']); 
$department = urldecode($_POST['dept']); 
$semester = urldecode($_POST['semester']); 
$session = urldecode($_POST['session']); 
$matric = urldecode($_POST['matric']); 

    print "$program $level $department"; 

?> 

// Meine profile.xml

<?xml version="1.0" encoding="UTF-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> 
    <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="10dp"> 
     <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Large Text" android:id="@+id/textView" android:layout_marginBottom="20dp" /> 
     <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView2" android:layout_marginBottom="20dp" /> 
     <TableLayout android:id="@+id/table" android:layout_width="wrap_content" android:layout_height="25dp" android:focusableInTouchMode="true" android:focusable="true" /> 
     <TextView android:id="@+id/content" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="5dp" /> 
     <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Program" android:layout_marginBottom="5dp" /> 
     <Spinner android:id="@+id/programme" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#fff" android:layout_marginBottom="10dp" /> 
     <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Level" android:layout_marginBottom="5dp" /> 
     <Spinner android:id="@+id/level" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#fff" android:layout_marginBottom="10dp" /> 
     <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Department" android:layout_marginBottom="5dp" /> 
     <Spinner android:id="@+id/dept" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#fff" android:layout_marginBottom="10dp" /> 
     <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Semester" android:layout_marginBottom="5dp" /> 
     <Spinner android:id="@+id/semester" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#fff" android:layout_marginBottom="10dp" /> 
     <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Session" android:layout_marginBottom="5dp" /> 
     <Spinner android:id="@+id/session" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#fff" android:layout_marginBottom="10dp" /> 
     <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="8dp" android:textStyle="bold" android:text="Enter your matric number" /> 
     <EditText android:id="@+id/rmatric" android:layout_width="match_parent" android:layout_height="50dp" /> 
     <Button android:id="@+id/checkresult" android:layout_width="match_parent" android:layout_height="match_parent" android:text="Check Result" /> 
    </LinearLayout> 
</ScrollView> 

Bitte freundlich helfen. Vielen Dank.

Antwort

0

Hier ist Ihr Beispielcode

Ihre PHP-Datei

<?php 
$val =file_get_contents('php://input'); 
$jsonObj = json_decode($val); 
$jsonObj = (object)$jsonObj; 
$data1 = $jsonObj->yourkey; 
$data2 = $jsonObj->yourkey; 

// your sql execution 

$returnData = array(
    "code" => 500, 
    "msg" => "UserName Already Exist!! Try with diffrent user Name!!", 
    ); 
$a = json_encode($returnData); 
echo $a; 
die(); 

?> 

hier ist ein Code java // Ihr JSON-Objekt mit Schlüssel-Wert-Paare

JSONObject object=new JSONObject(); 
try { 
    object.put("key", value); 
    object.put("key", value); 

}catch (JSONException e){} 


// make a request this should run on ui thred 
String urlString = ""; 
RestHelper restHelper = new RestHelper(context); 
RequestFuture requestFuture = RequestFuture.newFuture(); 
response = restHelper.postRequestTest(urlString,object,requestFuture); 
System.out.println("Json Data" + response.toString()); 

//libraries need to compile 
compile 'com.mcxiaoke.volley:library:1.0.19' 
compile 'com.google.code.gson:gson:2.3' 

Hier RestHelper füllen .java

import android.content.Context; 
import android.graphics.Bitmap; 
import android.widget.ImageView; 

import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.RetryPolicy; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.ImageRequest; 
import com.android.volley.toolbox.JsonObjectRequest; 
import com.android.volley.toolbox.RequestFuture; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 
import com.naitiks.helpme.Model.HappyMomentsModel; 
import com.naitiks.helpme.R; 

import org.json.JSONException; 
import org.json.JSONObject; 

import java.util.HashMap; 
import java.util.Map; 
import java.util.concurrent.ExecutionException; 

/** 
* Created by Naitik on 25-04-2016. 
*/ 
public class RestHelper { 

    private RequestQueue queue = null; 
    private Context context = null; 

    public void setQueue(RequestQueue queue) { 
     this.queue = queue; 
    } 

    public RequestQueue getQueue() { 
     return queue; 
    } 

    public RestHelper(Context context){ 
     this.context = context; 
     queue= Volley.newRequestQueue(context); 
    } 
    public JSONObject postRequestTest(String url, final JSONObject userMap,final RequestFuture requestFuture){ 
     JsonObjectRequest postRequest = new JsonObjectRequest(Request.Method.POST, url, userMap,requestFuture,requestFuture); 
     postRequest.setRetryPolicy(new RetryPolicy() { 
      @Override 
      public int getCurrentTimeout() { 
       return 40000; 
      } 

      @Override 
      public int getCurrentRetryCount() { 
       return 5; 
      } 

      @Override 
      public void retry(VolleyError volleyError) throws VolleyError { 
      } 
     }); 
     queue.add(postRequest); 
     try { 
      Object object = requestFuture.get(); 
      System.out.println("*** result" +object.toString()); 
      JSONObject result = (JSONObject)object; 
      return result; 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } catch (ExecutionException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
} 
+0

Danke. du hast meinen Tag gerettet. – Webln

+0

Mypleasure hilft weiter und hilft – Naitik

0

Warum Sie nicht versuchen mit Volley-Bibliothek und eine andere Sache, die ich vorschlagen möchte, ist JSON statt Daten mit URL-Codierung zu senden.

Dies ist nur ein Vorschlag.

+0

Okay. Können Sie ein Beispiel dafür geben, wie Sie mit json die gleichen Absichtsergebnisse archivieren können? Danke für die schnelle Antwort. – Webln

+0

Alles klar, möchten Sie Post oder bekommen? – Naitik

Verwandte Themen