Android 无法在服务器上发布数据
我在服务器上发布值并得到响应。但问题是它显示我为空作为响应。我犯了什么错误。我尝试了许多发布方法,但仍然没有找到任何解决方案。有人可以帮助我吗。 下面是我的代码-Android 无法在服务器上发布数据,android,post,android-asynctask,Android,Post,Android Asynctask,我在服务器上发布值并得到响应。但问题是它显示我为空作为响应。我犯了什么错误。我尝试了许多发布方法,但仍然没有找到任何解决方案。有人可以帮助我吗。 下面是我的代码- class SendPostReqAsyncTask extends AsyncTask<String, Void, String> { String OTPTxt = otp.getText().toString(); int CustID = 2; @Override
class SendPostReqAsyncTask extends AsyncTask<String, Void, String> {
String OTPTxt = otp.getText().toString();
int CustID = 2;
@Override
protected String doInBackground(String... params) {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("mylink?CustID=" + CustID + "&OTP=" + OTPTxt);
List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();
try {
UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(nameValuePairList);
httpPost.setEntity(urlEncodedFormEntity);
HttpResponse httpResponse = httpClient.execute(httpPost);
InputStream inputStream = httpResponse.getEntity().getContent();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder stringBuilder = new StringBuilder();
String bufferedStrChunk = null;
while ((bufferedStrChunk = bufferedReader.readLine()) != null) {
stringBuilder.append(bufferedStrChunk);
}
return stringBuilder.toString();
} catch (ClientProtocolException cpe) {
System.out.println("Firstption caz of HttpResponese :" + cpe);
cpe.printStackTrace();
} catch (IOException ioe) {
System.out.println("Secondption caz of HttpResponse :" + ioe);
ioe.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(OTPScreen1.this, "Posting Data to server", Toast.LENGTH_SHORT).show();
Toast.makeText(OTPScreen1.this, "posting data " + responseServer, Toast.LENGTH_SHORT).show();
}
});
}
}
Toast.makeText(OTPScreen1.this,“发布数据”+响应服务器,Toast.LENGTH_SHORT).show()}代码>。未使用responseServer。您应该使用字符串s。然后拆下止动器盖()。onPostExecute中不需要它。@重写受保护的void onPostExecute(字符串s){super.onPostExecute(s);Toast.makeText(OTPScreen1.this,“将数据发布到服务器”,Toast.LENGTH_SHORT.show();Toast.makeText(OTPScreen1.this,“发布数据”+s,Toast.LENGTH_SHORT.show())我应该这样写吗?仍然显示空作为响应您在清单文件中声明了internet权限了吗?是的,已经声明了
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new SendPostReqAsyncTask().execute();
}
});