无法在中的android中执行POST方法 公共类MainActivity扩展了ActionBarActivity实现了View.OnClickListener{ 公共静态int标志; 公共布尔t; 文本视图; 按钮; 私有静态最终字符串DEBUG_TAG=“HttpExample”; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.layout); 视图=(TextView)findViewById(R.id.textvi); 按钮=(按钮)findViewById(R.id.button); setOnClickListener(此); } @凌驾 公共void onClick(视图v){ if(v.getId()==R.id.button){ 字符串stringUrl=”http://mohdgadi.netai.net/Register.php"; 新建下载WebPagetAsk().execute(stringUrl); } } 私有类下载WebPagetTask扩展异步任务{ @凌驾 受保护的字符串doInBackground(字符串…URL){ //params来自execute()调用:params[0]是url。 试一试{ 返回下载URL(URL[0]); }捕获(IOE异常){ return“无法检索网页。URL可能无效。”; } } //onPostExecute显示异步任务的结果。 @凌驾 受保护的void onPostExecute(字符串结果){ view.setText(结果); } } 私有字符串下载URL(字符串myurl)引发IOException{ InputStream=null; 字符串username=“mohammed”; 字符串password=“pass”; 智力年龄=3; //仅显示检索到的文件的前500个字符 //网页内容。 int len=500; 试一试{ URL=新URL(myurl); HttpURLConnection conn=(HttpURLConnection)url.openConnection(); conn.setReadTimeout(10000/*毫秒*/); conn.setConnectTimeout(15000/*毫秒*/); conn.setRequestMethod(“POST”); conn.setDoInput(真); 连接设置输出(真); //启动查询 int response=conn.getResponseCode(); Log.d(DEBUG_标记,“响应为:”+response); ArrayList dataToSend=新的ArrayList(); 添加(新的BasicNameValuePair(“用户名”,username)); 添加(新的BasicNameValuePair(“密码”,password)); 添加(新的BasicNameValuePair(“年龄”,年龄+”); OutputStream os=conn.getOutputStream(); BufferedWriter=新的BufferedWriter( 新的OutputStreamWriter(操作系统,“UTF-8”); write(getQuery(dataToSend)); writer.flush(); writer.close(); os.close(); 连接(); String result=“完成”; //is=conn.getInputStream(); //将InputStream转换为字符串 //字符串contentAsString=readIt(is,len); //返回contentAsString; 返回null; //确保在应用程序启动后关闭InputStream //用完了。 }最后{ 如果(is!=null){ is.close(); } } } 私有字符串getQuery(列表参数)引发UnsupportedEncodingException { StringBuilder结果=新建StringBuilder(); 布尔值优先=真; for(NameValuePair对:params) { 如果(第一) 第一个=假; 其他的 结果。追加(&); append(URLEncoder.encode(pair.getName(),“UTF-8”); 结果。追加(“=”); append(URLEncoder.encode(pair.getValue(),“UTF-8”); } 返回result.toString(); }
我试图在我的网站上发布数据,但当我按下按钮时,它似乎不起作用,它不会更新我的网站和数据库。 我注释掉了inputstream代码,它在GET方法中工作得非常好,但是post不工作,甚至我的数据库也没有更新 这是我在名为Register.php的公用文件夹中的php文件无法在中的android中执行POST方法 公共类MainActivity扩展了ActionBarActivity实现了View.OnClickListener{ 公共静态int标志; 公共布尔t; 文本视图; 按钮; 私有静态最终字符串DEBUG_TAG=“HttpExample”; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.layout); 视图=(TextView)findViewById(R.id.textvi); 按钮=(按钮)findViewById(R.id.button); setOnClickListener(此); } @凌驾 公共void onClick(视图v){ if(v.getId()==R.id.button){ 字符串stringUrl=”http://mohdgadi.netai.net/Register.php"; 新建下载WebPagetAsk().execute(stringUrl); } } 私有类下载WebPagetTask扩展异步任务{ @凌驾 受保护的字符串doInBackground(字符串…URL){ //params来自execute()调用:params[0]是url。 试一试{ 返回下载URL(URL[0]); }捕获(IOE异常){ return“无法检索网页。URL可能无效。”; } } //onPostExecute显示异步任务的结果。 @凌驾 受保护的void onPostExecute(字符串结果){ view.setText(结果); } } 私有字符串下载URL(字符串myurl)引发IOException{ InputStream=null; 字符串username=“mohammed”; 字符串password=“pass”; 智力年龄=3; //仅显示检索到的文件的前500个字符 //网页内容。 int len=500; 试一试{ URL=新URL(myurl); HttpURLConnection conn=(HttpURLConnection)url.openConnection(); conn.setReadTimeout(10000/*毫秒*/); conn.setConnectTimeout(15000/*毫秒*/); conn.setRequestMethod(“POST”); conn.setDoInput(真); 连接设置输出(真); //启动查询 int response=conn.getResponseCode(); Log.d(DEBUG_标记,“响应为:”+response); ArrayList dataToSend=新的ArrayList(); 添加(新的BasicNameValuePair(“用户名”,username)); 添加(新的BasicNameValuePair(“密码”,password)); 添加(新的BasicNameValuePair(“年龄”,年龄+”); OutputStream os=conn.getOutputStream(); BufferedWriter=新的BufferedWriter( 新的OutputStreamWriter(操作系统,“UTF-8”); write(getQuery(dataToSend)); writer.flush(); writer.close(); os.close(); 连接(); String result=“完成”; //is=conn.getInputStream(); //将InputStream转换为字符串 //字符串contentAsString=readIt(is,len); //返回contentAsString; 返回null; //确保在应用程序启动后关闭InputStream //用完了。 }最后{ 如果(is!=null){ is.close(); } } } 私有字符串getQuery(列表参数)引发UnsupportedEncodingException { StringBuilder结果=新建StringBuilder(); 布尔值优先=真; for(NameValuePair对:params) { 如果(第一) 第一个=假; 其他的 结果。追加(&); append(URLEncoder.encode(pair.getName(),“UTF-8”); 结果。追加(“=”); append(URLEncoder.encode(pair.getValue(),“UTF-8”); } 返回result.toString(); },android,http-post,Android,Http Post,我试图在我的网站上发布数据,但当我按下按钮时,它似乎不起作用,它不会更新我的网站和数据库。 我注释掉了inputstream代码,它在GET方法中工作得非常好,但是post不工作,甚至我的数据库也没有更新 这是我在名为Register.php的公用文件夹中的php文件 public class MainActivity extends ActionBarActivity implements View.OnClickListener{ public static int flag;
public class MainActivity extends ActionBarActivity implements View.OnClickListener{
public static int flag;
public boolean t;
TextView view;
Button button;
private static final String DEBUG_TAG = "HttpExample";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
view=(TextView)findViewById(R.id.textvi);
button=(Button)findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v.getId()==R.id.button){
String stringUrl="http://mohdgadi.netai.net/Register.php";
new DownloadWebpageTask().execute(stringUrl);
}
}
private class DownloadWebpageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
// params comes from the execute() call: params[0] is the url.
try {
return downloadUrl(urls[0]);
} catch (IOException e) {
return "Unable to retrieve web page. URL may be invalid.";
}
}
// onPostExecute displays the results of the AsyncTask.
@Override
protected void onPostExecute(String result) {
view.setText(result);
}
}
private String downloadUrl(String myurl) throws IOException {
InputStream is = null;
String username="mohammed";
String password="pass";
int age=3;
// Only display the first 500 characters of the retrieved
// web page content.
int len = 500;
try {
URL url = new URL(myurl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
// Starts the query
int response = conn.getResponseCode();
Log.d(DEBUG_TAG, "The response is: " + response);
ArrayList<NameValuePair> dataToSend = new ArrayList<>();
dataToSend.add(new BasicNameValuePair("username", username));
dataToSend.add(new BasicNameValuePair("password",password));
dataToSend.add(new BasicNameValuePair("age", age + ""));
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getQuery(dataToSend));
writer.flush();
writer.close();
os.close();
conn.connect();
String result="done";
// is = conn.getInputStream();
// Convert the InputStream into a string
// String contentAsString = readIt(is, len);
//return contentAsString;
return null;
// Makes sure that the InputStream is closed after the app is
// finished using it.
} finally {
if (is != null) {
is.close();
}
}
}
private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
{
StringBuilder result = new StringBuilder();
boolean first = true;
for (NameValuePair pair : params)
{
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
}
return result.toString();
}
您正在尝试在写入post数据之前获取响应代码。请在写入后检索响应代码
int response = conn.getResponseCode();
您正在尝试在写入post数据之前获取响应代码。请在写入后检索响应代码
int response = conn.getResponseCode();
要发出Post请求,您可以使用以下代码:
conn.connect();
public void postRequest(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“”);
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“名称”、“堆栈溢出”);
添加(新的BasicNameValuePair(“日期”、“12月4日”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
HttpResponse response=httpclient.execute(httppost);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
}
有关完整的教程和解释,请单击发出发帖请求。您可以使用以下代码:
conn.connect();
public void postRequest(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“”);
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“名称”、“堆栈溢出”);
添加(新的BasicNameValuePair(“日期”、“12月4日”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
HttpResponse response=httpclient.execute(httppost);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块