Я новичок в передаче данных на онлайн-сервер. Я следовал нескольким учебникам для него, так как DefaultHttpClient устарел в последней версии SDK, поэтому я использовал стороннюю библиотеку Ion Github Link, Я использую домен 000Webhost в качестве онлайн-сервера.
Я слежу за этим Android: подключите httpURLConnection к серверу ответь пока,
Вот мой клиентский код приложения для Android
row.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(ab,"Long clicked",Toast.LENGTH_LONG).show();
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("AddressType", a.get(position).getKEY_Address_Type());
jsonObject.addProperty("Email", a.get(position).getKEY_Place_Email());
jsonObject.addProperty("Name", a.get(position).getKEY_Place_Name());
jsonObject.addProperty("Number", a.get(position).getKEY_Place_Number());
jsonObject.addProperty("Type", a.get(position).getKEY_Place_Type());
if(a.get(position) instanceof AutoClass){
AutoClass ab=(AutoClass)a.get(position);
jsonObject.addProperty("HintAddress", ab.getAuto_KEY_Place_Hint_Address());
jsonObject.addProperty("PlaceLangitude", ab.getAuto_KEY_Place_Langitude());
jsonObject.addProperty("PlaceLatitude", ab.getAuto_KEY_Place_Latitude());}
else {
ManualClass ab=(ManualClass)a.get(position);
jsonObject.addProperty("PlaceAddress", ab.getKEY_Place_Address());
}
Ion.with(ab).load("http://addressbook.netau.net/config.php").setJsonObjectBody(jsonObject).asJsonObject()
.setCallback(new FutureCallback<JsonObject>() {
@Override
public void onCompleted(Exception e, JsonObject result) {
if (result != null) {
Boolean risultato = result.get("result").getAsString().equals("1");
Log.d("Result Back: ", risultato.toString());
if(risultato)
Toast.makeText(ab, "Server Added Success", Toast.LENGTH_LONG).show();
else
Toast.makeText(ab, "Server Reached Error", Toast.LENGTH_LONG).show();
}
else
Toast.makeText(ab, "No server found", Toast.LENGTH_LONG).show();
}
});
return false;
}
});
Файл php, к которому я хочу подключиться, находится в главной (корневой) директории моего домена. http://addressbook.netau.net.
Вот код php
<?php
$json = json_decode(file_get_contents('php://input'), true);
$conn = new PDO("mysql:host=mysql7.000webhost.com;dbname=a1757422_AppData","username","password");$addType=$json['AddressType'];
$email=$json['Email'];
$name=$json['Name'];
$number=$json['Number'];
$type=$json['Type'];
if($json['PlaceLangitude']){
$latitudine = $json['PlaceLatitude'];
$longitudine = $json['PlaceLangitude'];
$hint = $json['HintAddress'];
$sql = "INSERT INTO auto(name, number, placetype, addresstype, langitude,latitude,placehint,email)
VALUES (:name, :number, :type, :addType, :longitudine, :latitudine, :hint,:email)";
$query = $conn->prepare($sql);
$query->bindParam(':name', $name, PDO::PARAM_STR);
$query->bindParam(':number', $number, PDO::PARAM_STR);
$query->bindParam(':placetype', $type, PDO::PARAM_STR);
$query->bindParam(':addresstype', $addType, PDO::PARAM_STR);
$query->bindParam(':langitude', $longitudine , PDO::PARAM_STR);
$query->bindParam(':latitude', $latitudine , PDO::PARAM_STR);
$query->bindParam(':placehint', $hint , PDO::PARAM_STR);
$query->bindParam(':email', $email, PDO::PARAM_STR);
$result = $query->execute();
if($result)
echo json_encode(array('result' => "1"));
else
echo $query->errorCode();
}
else{
$pAddress= $json['PlaceAddress'];$sql = "INSERT INTO manual(name, number, email, addresstype, placetype,address)
VALUES (:name, :number, :type, :email, :addType, :type, :pAddress)";
$query = $conn->prepare($sql);
$query->bindParam(':name', $name, PDO::PARAM_STR);
$query->bindParam(':number', $number, PDO::PARAM_STR);
$query->bindParam(':email', $email, PDO::PARAM_STR);
$query->bindParam(':addresstype', $addType, PDO::PARAM_STR);
$query->bindParam(':placetype', $type, PDO::PARAM_STR);
$query->bindParam(':address', $pAddress, PDO::PARAM_STR);$result = $query->execute();
if($result)
echo json_encode(array('result' => "1"));
else
echo $query->errorCode();
}
?>
То, что я пытаюсь сделать, — это отправить некоторые данные из моего приложения на онлайн-сервер, а затем с помощью php сохранить эти данные в базе данных, т.е. в базе данных mysql. Я тоже мало что знаю о php.
Пожалуйста, помогите, спасибо!
Ответ не является объектом json, поэтому он рассматривается как ошибка, и, по-видимому, я считаю все ошибки «Сервер не найден»
Других решений пока нет …