0
私は現在、ボタンを押すだけでデータをサーバーにPOSTするAndroidアプリケーションを作成しようとしています。Androidアプリケーションからの投稿
私はここでこの作業をしようとするために他のポストをたどりましたが、ボールをプレーしたくありません。私はちょうどAndroidのスタジオとJava言語と分かれているように思えますが、これは恥ずかしいです。私はJavaが好きですから。投稿は他の言語でも簡単です。
Wiresharkを起動してアプリケーションのボタンを押すと、アプリケーション層のデータはありませんが、ポート80でパケットが送信されているのがわかります。
以下のhttpHelperクラスのコードをご覧ください。これは、基本的には(GETリクエストのために使用される)完全なリファレンス(第9版)本の中で提供される例から適応し、その後、私はスタックオーバーフローから収集した情報をPOSTするようになっています:ネットワーキングのための
public class httpHelper {
String url;
public httpHelper(String hturl){
url = hturl;
}
//Literally no idea why this isn't working.
void postData(String qString) throws Exception{
URL hp = new URL(url);
HttpURLConnection hpCon = (HttpURLConnection) hp.openConnection();
hpCon.setDoOutput(true);
hpCon.setRequestMethod("POST");
hpCon.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
hpCon.setRequestProperty("charset", "utf-8");
hpCon.setDoInput(true);
hpCon.setUseCaches(false);
byte[] postString = qString.getBytes(Charset.forName("UTF-8"));
hpCon.setRequestProperty("Content-Length", Integer.toString(postString.length));
try{
DataOutputStream wr = new DataOutputStream(hpCon.getOutputStream());
wr.write(postString);
}catch(Exception e){
e.printStackTrace();
}
}}
例外があるかどうかを確認することができます(スタックトレースを印刷していて、デバッグ用にスタックトレースを再投入できます)。そして接続状態を確認してください。200 –
次に、OkHttpのようなライブラリ(さらに高レベルのRetrofit)があります。 –