Java Android发送参数服务器。创建请求
我想创建请求,并想将参数发送到服务器,例如两个字符串(hello,hello) 我在谷歌上搜索了一下,写了一些代码,但我有调试错误(我的问题是URL) 我想在这个url中发送两个字符串http://*//**.aspx?deviceId={id}&list={list} deviceID={id)是第一个字符串,例如divice id,list={list}是第二个字符串Java Android发送参数服务器。创建请求,java,android,http,Java,Android,Http,我想创建请求,并想将参数发送到服务器,例如两个字符串(hello,hello) 我在谷歌上搜索了一下,写了一些代码,但我有调试错误(我的问题是URL) 我想在这个url中发送两个字符串http://*//**.aspx?deviceId={id}&list={list} deviceID={id)是第一个字符串,例如divice id,list={list}是第二个字符串 HttpClient httpClient = new DefaultHttpClient(); HttpPos
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(
"http://****/***/******.aspx?deviceId={id}&list={list}");
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
nameValuePair.add(new BasicNameValuePair("id", android_id));
nameValuePair.add(new BasicNameValuePair("list","Hello"));
try {
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
HttpResponse response = httpClient.execute(httpPost);
Log.d("Http Response:", response.toString());
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(getApplicationContext(), android_id, Toast.LENGTH_LONG)
.show();
}
HttpClient-HttpClient=newdefaulthttpclient();
HttpPost HttpPost=新的HttpPost(
“http://******/********.aspx?deviceId={id}&list={list}”);
List nameValuePair=新的ArrayList(2);
添加(新的BasicNameValuePair(“id”,android_id));
添加(新的BasicNameValuePair(“列表”,“你好”));
试一试{
setEntity(新的UrlEncodedFormEntity(nameValuePair));
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
试一试{
HttpResponse response=httpClient.execute(httpPost);
Log.d(“Http响应:,Response.toString());
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
Toast.makeText(getApplicationContext(),android\u id,Toast.LENGTH\u LONG)
.show();
}
}我认为这是一种GET方法,您正在尝试发布它,对吗 如果是GET方法,则必须在URL本身内部传递请求,如下所示 您以前的代码:
HttpPost httpPost = new HttpPost(
"http://****/***/******.aspx?deviceId={id}&list={list}");
现在换成,
HttpGet httpPost = new HttpGet(
"http://****/***/******.aspx?deviceId="+android_id+"&list="+"Hello");
简单地说,您不必在URL中硬编码参数,因为您使用的是名称-值对。 我认为这应该没有问题
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(
"http://****/***/******.aspx");
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
nameValuePair.add(new BasicNameValuePair("id", android_id));
nameValuePair.add(new BasicNameValuePair("list","Hello"));
try {
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
HttpResponse response = httpClient.execute(httpPost);
Log.d("Http Response:", response.toString());
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(getApplicationContext(), android_id, Toast.LENGTH_LONG)
.show();
}
}
HttpClient-HttpClient=newdefaulthttpclient();
HttpPost HttpPost=新的HttpPost(
“http://******/************.aspx”);
List nameValuePair=新的ArrayList(2);
添加(新的BasicNameValuePair(“id”,android_id));
添加(新的BasicNameValuePair(“列表”,“你好”));
试一试{
setEntity(新的UrlEncodedFormEntity(nameValuePair));
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
试一试{
HttpResponse response=httpClient.execute(httpPost);
Log.d(“Http响应:,Response.toString());
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
Toast.makeText(getApplicationContext(),android\u id,Toast.LENGTH\u LONG)
.show();
}
}
我不知道,我对httpOK fine知之甚少,您现在尝试访问的是谁开发了此web服务,请询问他们它是在GET方法还是POST方法中创建的?因为您使用了HttpPost,所以web服务也应该在POST方法中,这样只有您才能访问它。如果在GET方法中,则需要使用HttpGet。我问他,这是一种获取方法。首先,你在网络浏览器中尝试该url,然后手动传递值,偏离主题:。您可以在上找到其他选项。这不起作用:(我无法将两个参数发送到server@user3233500你是怎么测试的?