2017-02-14 1 views
0

어떤 이유로 든 데이터가 수신되지 않지만 내 서버의 데이터베이스에 문자열을 전송하는 앱에서 작업 해 왔습니다. 어쩌면 당신은 올바른 방향으로 나를 가리킬 수 있습니다, 나는 그물 전체를 검색했지만 작동하지 않는 이유를 찾을 수 없습니다.앱에서 서버로 문자열 보내기

내 안드로이드 코드 : PHP에서

public class HttpURLConnectionHandler 
    { 
    protected String urlG = "http://example.com/"; 
    public String sendText(String text) 
    { 

     try { 
      URL url = new URL(urlG+"phpcode.php"); 
      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      conn.setRequestMethod("POST"); 

      conn.setDoOutput(true); 
      conn.setDoInput(true); 
      conn.connect(); 
      DataOutputStream wr = new DataOutputStream(
        conn.getOutputStream()); 

      wr.writeBytes("mydata:"+text); 
      wr.flush(); 
      wr.close(); 

      InputStream is = conn.getInputStream(); 
      BufferedReader rd = new BufferedReader(new InputStreamReader(is)); 
      String line; 
      StringBuffer response = new StringBuffer(); 
      while((line = rd.readLine()) != null) { 
       response.append(line); 
       response.append('\r'); 
      } 
      rd.close(); 
      return response.toString(); 
     } 
     catch(Exception e){ return "error";} 
    } 

} 

내 코드 :

<?php 
$servername = "here is my server"; 
$username = "my username"; 
$password = "my pass"; 
$dbname = "database"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 



$image = $_POST['image']; 


$sql = "INSERT INTO photos (image) 
VALUES ('{$image}')"; 

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
?> 

내 클래스를 호출하는 방법은 다음과 같습니다

HttpURLConnectionHandler handler= new HttpURLConnectionHandler(); 
String response = handler.sendText("this is a text"); 
+0

Json은 서버와 클라이언트 간의 통신 측면에서 더 나은 옵션이 될 것입니다. – IteratioN7T

+0

나는 당신이 여기서 무엇을하려고하는지 잘 모르지만 첫째로 귀하의 안드로이드 코드와 PHP 코드가 일치하지 않습니다. 둘 다 서로 다른 용도로 쓰여집니다. 목적. 둘째로 발리 (Volley) 나 네트워크 요청 (OKhttp)과 같은 라이브러리를 사용해보십시오. –

+0

응용 프로그램의 주요 목적은 내 서버의 데이터베이스에 문자열을 보내는 것입니다. 저는 이것에 대해 아주 새로운 것입니다. 그래서 나는 조금 고심하고 있습니다. –

답변

0

나는 당신이 주변에 Retrofit

를 살펴 보자
0

너 귀하의 PHP에서 POST 변수의 값을 얻으려고 시도하지만 변수 mydata을 보내고 있습니다.

+0

그래서 내가 대신 내 POST를 사용해야합니다 내 databse에 문자열을 보내시겠습니까? –

+0

$ image = $ _POST [ 'mydata']; 안드로이드에 대한 코드를 작성해 본 적이 없지만, 코드가 POST에 "이미지"변수를 보내지 않는다고 생각합니다. 다음을 추가하여 POST 요청의 모든 값을 볼 수 있습니다. var_dump ($ _ POST); 귀하의 PHP 코드. –

관련 문제