Android를 통해 3G를 통해 서버에 대한 연결을 만들고 싶지만 성공하지 못했습니다. Android 휴대 전화가 Wi-Fi를 통해 연결되어 있고 내 서버와 동일한 Wi-Fi 인 경우 성공합니다. 제발 도와 주실 수 있나요? 여기Android 3g를 통해 서버에 연결하고 phpmyadmin에서 데이터 가져 오기
<?php
// on se connecte à notre base pour recuperer les data
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('routelibre', $base) ;
$variable = $_GET['variable'];
$first_token = strtok($variable, ";;");
$second_token = strtok(";;");
$req =mysql_query("SELECT message from messages where departement='$first_token' AND voie='$second_token'");
$output=array();
while ($row=mysql_fetch_array($req)) {
$output[]=$row;
}
//on encode en JSON
print(json_encode($output));
mysql_free_result ($req);
?>
안드로이드에 대한 코드입니다 :
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.content.Context;
import android.net.ParseException;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import android.content.Context;
public class ConnexionSQL {
public void ConnexionSQLActivity(){};
public ArrayList<String> ConnexionBD(String dataFromHMI, Context context) {
String result = null;
InputStream is = null;
JSONObject json_data=null;
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
ArrayList<String> lesMessages = new ArrayList<String>();
StrictMode.ThreadPolicy policy = new
StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
try{
//commandes httpClient
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost("http://192.168.1.1:80/connexion_mysql.php?variable=" + dataFromHMI);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}
catch(Exception e){
Log.i("taghttppost",""+e.toString());
Toast.makeText(context,e.toString() ,Toast.LENGTH_LONG).show();
}
//conversion de la réponse en chaine de caractère
try
{
BufferedReader reader = new BufferedReader(new
InputStreamReader(is,"UTF-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
is.close();
result = sb.toString();
}
catch(Exception e)
{
Log.i("tagconvertstr",""+e.toString());
}
//recuperation des donnees json
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++)
{
json_data = jArray.getJSONObject(i);
lesMessages.add(json_data.getString("message"));
//r.add(json_data.getString("categorie"));
}
}
catch(JSONException e){
Log.i("tagjsonexp",""+e.toString());
} catch (ParseException e) {
Log.i("tagjsonpars",""+e.toString());
}
return lesMessages;
}
}
죄송합니다. 이해가 안되면 ... 조금 서둘 렀어 ... 언제든지 질문 해주세요. – javajavajava
서버가 없습니다. 내 컴퓨터에만 있습니다. 이해가 잘 못되는지 설명해 주시겠습니까? – user1106464
내 대답을 편집했습니다 ... 도움이되는지 확인하십시오. – javajavajava