2

間に挟まれています。私はHttpUrlConnectionを使用してPOSTメソッドを実装して、ユーザーをサーバーに登録するための電子メール、名前、およびパスワードを送信します。私は間違いを犯していますどこ私は知らないHttpUrlConnectionを使用してサーバーにリクエストを送信します。

public void createNewProfile(View view){ 

    new Post().execute("http://myurl.com"); 

} 

private class Post extends AsyncTask<String, Void, String>{ 

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

     try { 

      URL url = new URL("http://myurl.com"); 
      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 

      conn.setRequestMethod("POST"); 
      conn.setDoInput(true); 
      conn.setDoOutput(true); 

      ContentValues values = new ContentValues(); 
      values.put("email", "[email protected]"); 
      values.put("password", 123); 
      values.put("name","ABC"); 

      OutputStream os = conn.getOutputStream(); 
      BufferedWriter writer = new BufferedWriter(
        new OutputStreamWriter(os, "UTF-8")); 
      writer.write(getQuery(values)); 
      writer.flush(); 
      writer.close(); 
      os.close(); 
      response = conn.getResponseCode(); 
      conn.connect(); 

     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      Log.i("Result",String.valueOf(e)); 
     } 
     return null; 
    } 

    private String getQuery(ContentValues values) throws UnsupportedEncodingException 
    { 
     StringBuilder result = new StringBuilder(); 
     boolean first = true; 

     for (Map.Entry<String, Object> entry : values.valueSet()) 
     { 
      if (first) 
       first = false; 
      else 
       result.append("&"); 

      result.append(URLEncoder.encode(entry.getKey(), "UTF-8")); 
      result.append("="); 
      result.append(URLEncoder.encode(String.valueOf(entry.getValue()), "UTF-8")); 
     } 

     Log.i("Result",result.toString() +" "+ String.valueOf(response)); 

     return result.toString(); 
    } 
} 

: はここに私のコードです。次の応答が返されています

name=ABC&email=abc%40xyz.com&password=123 0 

ここで、スペースの後に "0"はhttp応答コードによって返された応答コードです。 ブラウザで試しているときにURLが正しいのですが。 私はどこで間違いをしているのか分かりません。私のコードで何らかの対話処理があるとは思わないので、それは私のサーバーの欠陥か、間違いです。

私はAndroid Developementで初心者ですが、何度も試してみましたが、さまざまなコードを試しましたが、エラーが発生しました。

助けてください! ありがとうございます。

+0

は(それレスポンス以下= conn.getResponseCode()とconn.connect finally文で –

+0

セットの応答を取得した後ライターを閉じてみてくださいを、しかし、再び同じ応答とも私はそれを削除しましたが、同じ応答です。 – Swr7der

+0

参照のために自分のコードを追加しました...チェックし、助けてくれたら教えてください –

答えて

1

このような何か試してみてください。)

try { 
    url = new URL(params[0]); 
    httpURLConnection = (HttpURLConnection) url.openConnection(); 
    httpURLConnection.setDoInput(true); 
    httpURLConnection.setDoOutput(true); 
    httpURLConnection.setRequestMethod("POST"); 



    outputStream = httpURLConnection.getOutputStream(); 

    bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream)); 
    bufferedWriter.write(myValues); 
    bufferedWriter.flush(); 

    int statusCode = httpURLConnection.getResponseCode(); 
    Log.d(Constants.LOG_TAG, " The status code is " + statusCode); 

    if (statusCode == 200) { 
     inputStream = new BufferedInputStream(httpURLConnection.getInputStream()); 
     response = convertInputStreamToString(inputStream); 
     Log.d(Constants.LOG_TAG, "The response is " + response); 

     JSONObject jsonObject = new JSONObject(response); 

return true; 

    } else { 
     return false; 
    } 

} catch (Exception e) { 

    e.printStackTrace(); 
} finally { 
    try { 
     if (inputStream != null) { 
      inputStream.close(); 
     } 
     if (outputStream != null) { 
      outputStream.close(); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

私はこのコードから応答コード405を取得しています。そして、私がinputStreamを任意のレスポンスコードに対して実行するようにしたら、再びfileNotFoundExceptionを実行します。それは私が入力している私のデータ形式かサーバー側の障害ですか?私はこれのためにボレーをしようとする必要がありますか? – Swr7der

+0

あなたはvolley ..を試すことができますが、私はあなたのURLまたはサーバー側のコードに問題があると思う –

+0

コードに間違いはないと確信していますか? API URLに特定のユーザーを登録するためにこのPOSTリクエストを使用できますか? – Swr7der

関連する問題