2017-05-18 29 views
0

私のアンドロイドアプリケーションから自分のサイトのデータベースにJSONオブジェクトを送信しようとしています。しかし、私は接続の種類を取得しないようだと私は例外エラーを取得しません。私は現在、Eclipseとの接続を取得しようとしていますが、まだ運がありません。Android経由でPHPに接続する際の問題

submitAlbum.php:

<?php 
if(isset($_POST["albumId"])){ 
    $albumId = json_decode($_POST["albumId"]); 
} 

Javaコード:

String albumId = "qjlix"; 

    try{ 
     //Creates JSON object 
     JSONObject tempObj = new JSONObject(); 
     tempObj.put("albumId", albumId); 

     //Creates connection to URL 
     URL targetUrl = new URL("http://example.com/submitAlbum.php"); 
     HttpURLConnection conn = (HttpURLConnection) targetUrl.openConnection(); 
     conn.setDoInput(true); 
     conn.setDoOutput(true); 
     conn.setRequestMethod("POST"); 
     conn.setConnectTimeout(500); 
     conn.setRequestProperty("Content_Type", "application/json; charset=UTF-8"); 

     OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); 
     writer.write(tempObj.toString()); 
     writer.flush(); 
     writer.close(); 
    } catch (Exception e){ 
     System.out.println(e.toString());; 
    } 

は私が見つからないか、間違ってやっている自分の何かか?

+1

あなたはあなたのアンドロイド側でどんな反応を得ますか?あなたはContent-Typeを意味していましたかContent_Typeではありませんでしたか? –

+0

@RobertI私は繁栄してURLを間違っても応答しません。そして、私はリクエストのプロパティを試していました。 – Loughmasta

答えて

0

値がjsonテキストのPOSTパラメータ/キー 'albumId'は送信していません。代わりに、jsonパラメータ 'albumId'を含むjsonテキストを送信します。

PHPスクリプトとクライアントコードが一致しません。

まず、POSTキー=値のペアを使用するかどうかを決定します。または、jsonのテキストをPOSTしたいそれに応じて処理します。

+0

私は彼らが一致していないことを認識していないおかげで。しかし、これがPHPの実行を妨げる唯一の問題ではありません。接続するだけでデータベースに何かを書き込むようにPHPを設定すると、何も起こりません。 – Loughmasta

0

私はなぜ知らないが、クライアント側でこれを実行するまで、PHPにも実行されません:だから最後に私はPHPのコードが既にALBUMIDセットを持って作られた

conn.getResponseCode(); 

、それだけでそれに接続するための何かが必要でした。それから私のデータベースにそれを提出するでしょう。

PHP:

$albumId = "qjlix"; 

はその後、私のJavaで私が行うために必要なすべての接続PHPファイルを取得しました。

のJava:

try{ 
     URL url = new URL("http://example.com/submitAlbum.php"); 
     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setDoOutput(true); 
     conn.setRequestMethod("POST"); 
     OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); 
     writer.write("albumId = this"); 
     writer.close(); 

     if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { 
      System.out.println("worked"); 
     }else{ 
      System.out.println("Did not work"); 
     } 

    }catch(Exception e){ 
     System.out.println("exception thrown"); 
    } 

私はAndroidのアプリケーションで使用するために起こっても、経由のIntelliJでJavaをテストしていました。私はHttpURLConnectionが時々変わっているので、単にVolleyを使う予定です。ありがとう!!!

関連する問題