2017-09-29 1 views
0

基本的に私が作成しようとしているのは、作成したPHPページでPastebin APIに接続することです。あたかもパラメータが入力されていないかのようです。私のコードは次のとおりです:JavaでのHTTP POST要求

String urlParameters = "?api_dev_key=" + main.getKey() + "&api_user_name=" + username + "&api_user_password=" + password; URL url = new URL("http://pastebinclient.tk/server/login.php" + urlParameters); 
connection = (HttpURLConnection) url.openConnection(); 
connection.setRequestMethod("POST"); 
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
connection.setRequestProperty("Content-Language", "en-US"); 
connection.setRequestProperty("Accept", "*/*"); 
connection.setRequestProperty("User-Agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Safari/537.36"); 

connection.setUseCaches(false); 
connection.setDoOutput(true); 

同じパラメータでhttp://hurl.itを使用しましたが、うまくいきました。私のページでは、パラメータがすべて入力されていない場合は、それを示すメッセージが返されるように設定されています。申し訳ありませんが、私は既に回答されている質問をしていますが、答えは役に立たなかった。

答えて

0

実際にPOST要求の本文にパラメータを送信していません。コード内でクエリパラメータとして送信しています。 Webサービスの書き方によっては、クエリパラメータとして送信されたパラメータを受け入れることも受け付けないこともあります。この場合はそうではありません。 POST本体の一部としてパラメーターを提出する方法の例については、Java - sending HTTP parameters via POST method easilyを参照してください。

+0

申し訳ありませんが、お試しいただきありがとうございます! – Andrewboy159

+0

それはうまくいかなかった、私はまだなぜか分からない。それはとにかく固定されています。 Unirest-Javaを使用しました。素晴らしいです!強くお勧めします! – Andrewboy159

0

私は、apache http apiで構築されたhttp-requestを推奨します。

private static final HttpRequest<?> HTTP_REQUEST = 
     HttpRequestBuilder.createPost("http://pastebinclient.tk/server/login.php") 
      .responseDeserializer(ResponseDeserializer.ignorableDeserializer()) 
      .addDefaultHeader("Content-Type", "application/x-www-form-urlencoded") // I think there is no need 
      .addDefaultHeader("Content-Language", "en-US") 
      .addDefaultHeader("Accept", "*/*") 
      .addDefaultHeader("User-Agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Safari/537.36") 
      .build(); 

public void send(){ 
    ResponseHandler<?> handler = HTTP_REQUEST.executeWithQuery(urlParameters); 
    int statusCode = handler.getStatucCode(); 
} 
関連する問題