よし、C# コードの http 投稿は機能する (関数は を返しますTRUE
。これは、応答文字列が " OK
" であることを意味します。次のとおりです。
public bool Rank(int rank)
{
System.Text.UTF8Encoding encoding=new System.Text.UTF8Encoding();
string postData = "";
InvokeOnMainThread(delegate(){
postData="pass=somePass&request=someRequest&access_key="+((FBTabBarController)TabBarController).AAMAccessKey+"&pid="+place_id+"&rank="+rank.ToString();
});
byte[] data = encoding.GetBytes(postData);
HttpWebRequest myRequest =
(HttpWebRequest)WebRequest.Create("someURL");
myRequest.Method = "POST";
myRequest.ContentType="application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream=myRequest.GetRequestStream();
// Send the data.
newStream.Write(data,0,data.Length);
newStream.Close();
HttpWebResponse hwr =(HttpWebResponse) myRequest.GetResponse();
StreamReader reader = new StreamReader(hwr.GetResponseStream());
string res = reader.ReadToEnd();
if(res=="OK")
return true;}
else if(res == "FAILED") return false;
return false;
}
そして、ここに動作していない JAVA コードがあります (関数はFALSE
上記のコードと同じパラメーターを返します。応答文字列は次のとおりです: NULL
:
public boolean SubmitRank(String URL)
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL);
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(5);
Log.d("MyTag","id: " + place_id + "rank: " + rank);
nameValuePairs.add(new BasicNameValuePair("pass","somePass"));
nameValuePairs.add(new BasicNameValuePair("request","someRequest"));
nameValuePairs.add(new BasicNameValuePair("accesskey",shareAppPreferences.getAccessKey()));
nameValuePairs.add(new BasicNameValuePair("pid",place_id));
nameValuePairs.add(new BasicNameValuePair("rank",rank));
try {
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,HTTP.UTF_8));
try {
HttpResponse response = httpclient.execute(httppost);
String resString = EntityUtils.toString(response.getEntity());
if(resString.equals("OK")){
return true;
}
else if(resString.equals("FAILED")){
return false;
}
return false;
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return false;
}
C# コードが機能しているのに Java コードが機能しないのはなぜですか? 上記のリクエストで不足しているものはありますか?