2012-02-28 8 views
2

Androidプログラムからリモートサーバにリクエストを送信できますが、リクエストにパラメータがないようです。パラメータをどのように付けますか?だから今、私は/認証パスワードを作る要求に執着し、サーバーに送信されますログインするかどうかはわからない現在のAndroid HttpUrlConnectionコールにリクエストパラメータを添付する方法

@Override 
    protected String doInBackground(String... theParams) 
    { 

     String myUrl = theParams[0]; 
     final String myEmail = theParams[1]; 
     final String myPassword = theParams[2]; 

     Authenticator.setDefault(new Authenticator() 
     { 
      protected PasswordAuthentication getPasswordAuthentication() 
      { 
       return new PasswordAuthentication(myEmail, myPassword.toCharArray()); 
      } 
     });   

     String response = null; 

     try 
     { 
      final URL url = new URL(myUrl); 

      final HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      conn.setRequestProperty("login", myEmail); 
      conn.setRequestProperty("password", myPassword); 

      conn.setUseCaches(false); 

      final InputStream is = conn.getInputStream(); 
      final byte[] buffer = new byte[8196]; 
      int readCount; 
      final StringBuilder builder = new StringBuilder(); 
      while ((readCount = is.read(buffer)) > -1) 
      { 
       builder.append(new String(buffer, 0, readCount)); 
      } 

       response = builder.toString();  
      Log.d("After call, response: " , " " + response); 
     } 
     catch (Exception e) 
     { 

     } 

     return response; 
    } 

は、ここに私の現在のコードです。どのように私はそれを達成することができますか?

ありがとうございます!

答えて

3

あなたは、単にこの

final URL url = new URL(myUrl+"?login="+myEmail+"&password="+myPassword); 

を行うと、あなたはsetRequestProperty行は必要ありません。それらは実際にあなたのHttp Requestのプロパティを設定しており、クエリのパラメータは設定していません。

+0

@Nikilしかし、それはセキュリティ上の欠陥ではありませんか?パスワードを何とか隠してはいけないのですか?私は私の場合はhttpsを使用していません。ありがとう! – Genadinik

+0

それはすべて一緒に異なる問題です。暗号化/復号化ロジックが適切に設定されていないかSSL経由で通信する場合を除き、渡される資格情報は常にプレーンテキストになります。 – Nikhil

+0

@NikhilPatil、こんにちは、アンドロイドのPOSTリクエストにパラメータを追加することについてお話したいと思います –

関連する問題