1
誰でも私は安らかなWebサービスに認証の詳細を投稿し、それから応答を得る方法を手伝ってくれます。 私はUsername、IsAuthenticated(すなわちtrueまたはfalse)、Password.Alsoもurlエンコーディング方法について説明する必要があります。 以下に私のコードを示しました。私はAndroidの初心者です。どのようにアンドロイドで安らかなWebサービスを呼び出す
public class LoginActivity extends Activity
{
String Username;
String Password;
String IsAuthenticated;
String answer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
POST(Username,Password,IsAuthenticated);
} catch (Exception e) {
e.printStackTrace();
}
}
public String POST(String Username, String IsAuthenticated, String Password) {
String Returned = null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://......./Authenticate");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
// Your DATA
nameValuePairs.add(new BasicNameValuePair("UserName", "Username"));
nameValuePairs.add(new BasicNameValuePair("IsAuthenticated", "false"));
nameValuePairs.add(new BasicNameValuePair("Password", "Password"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
HttpResponse response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();
Returned = EntityUtils.toString(resEntity);
System.out.println(Returned);
Toast.makeText(this, Returned, Toast.LENGTH_LONG).show();
} catch (ClientProtocolException e) {
Toast.makeText(this, "There was an issue Try again later", Toast.LENGTH_LONG).show();
} catch (IOException e) {
Toast.makeText(this, "There was an IO issue Try again later", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
return Returned;
}
}
POSTメソッドが正常に表示されます。何かエラーがありますか?ただし、ネットワークアクティビティは別のスレッドで実行する必要があります。 [Painless Threading](http://developer.android.com/resources/articles/painless-threading.html)と[AsyncTask](http://developer.android.com/reference/android/os/AsyncTask.html)を参照してください。 )。 – basilisk
こんにちはバシリス、私はURLで私のログインパラメータをエンコードするのに問題があります。私はtatを克服すれば、私は出力を取得します。助言がありますか??? – Dray
私は 'httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs))'をエンコーディングを指定せずに使っていましたが、すべてがうまく動作していたようです。エンコーディングなしで試しましたか? – basilisk