如何在Android中发送POST方法,一个参数需要是字符串,另一个JSON对象?
如何在Android中发送POST方法,其中一个参数需要 字符串和另一个JSON对象 字符串参数为“age”如何在Android中发送POST方法,一个参数需要是字符串,另一个JSON对象?,android,Android,如何在Android中发送POST方法,其中一个参数需要 字符串和另一个JSON对象 字符串参数为“age” JSONObject createRequest=new JSONObject(); 试一试{ createRequest.put(“ID”,2173); createRequest.put(“名称”、“Munja”); createRequest.put(“地址”,“纽约”); }捕获(JSONException e){ //TODO自动生成的捕捉块 e、 printStackTrac
JSONObject createRequest=new JSONObject();
试一试{
createRequest.put(“ID”,2173);
createRequest.put(“名称”、“Munja”);
createRequest.put(“地址”,“纽约”);
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
//添加您的数据
List nameValuePairs=新的ArrayList(2);
//添加(新的BasicNameValuePair(“客户端”,createRequest.toString());
添加(新的BasicNameValuePair(“年龄”,“21”));
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
StringEntity se=新的StringEntity(createRequest.toString());
setContentType(新的BasicHeader(HTTP.CONTENT_TYPE,“application/json”);
httppost.setEntity(se);
//执行HTTP Post请求
HttpResponse response=httpclient.execute(httppost);
但是它不工作,接收400,就像它的格式不好一样。使用
httpost.setEntity(新的UrlEncodedFormEntity(nvps,HTTP.UTF_8))代码>
并删除内容类型:
DefaultHttpClient httpclient = null;
boolean success = false;
try {
httpclient = new DefaultHttpClient();
String url = mDataSupplier.getURL();
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
entity.consumeContent();
}
HttpPost httpost = new HttpPost(url);
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("client", createRequest.toString()));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
response = httpclient.execute(httpost);
entity = response.getEntity();
if (entity != null) {
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if(statusCode != 200){
mResErr.onErrorResponse(statusCode);
}
InputStream is = entity.getContent();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null) {
//System.out.println("Data Sender: " + line);
if(!line.trim().equals("")){
}
}
is.close();
//entity.consumeContent();
} else {
}
success = true;
} catch (Exception e) {
mResErr.onErrorResponse(e);
e.getStackTrace();
}
if (httpclient != null) {
// resource cleanup
httpclient.getConnectionManager().shutdown();
}
DefaultHttpClient-httpclient=null;
布尔成功=假;
试试{
httpclient=新的DefaultHttpClient();
字符串url=mDataSupplier.getURL();
HttpGet HttpGet=新的HttpGet(url);
HttpResponse response=httpclient.execute(httpget);
HttpEntity=response.getEntity();
如果(实体!=null){
entity.consumercontent();
}
HttpPost HttpPost=新的HttpPost(url);
List-nvps=newarraylist();
添加(新的BasicNameValuePair(“客户端”,createRequest.toString());
setEntity(新的UrlEncodedFormEntity(nvps,HTTP.UTF_8));
response=httpclient.execute(httpost);
entity=response.getEntity();
如果(实体!=null){
StatusLine StatusLine=response.getStatusLine();
int statusCode=statusLine.getStatusCode();
如果(状态代码!=200){
mResErr.onErrorResponse(状态代码);
}
InputStream=entity.getContent();
InputStreamReader isr=新的InputStreamReader(is);
BufferedReader br=新的BufferedReader(isr);
字符串行=null;
而((line=br.readLine())!=null){
//System.out.println(“数据发送器:“+行”);
如果(!line.trim()等于(“”){
}
}
is.close();
//entity.consumercontent();
}否则{
}
成功=真实;
}捕获(例外e){
mResErr.onErrorResponse(e);
e、 getStackTrace();
}
if(httpclient!=null){
//资源清理
httpclient.getConnectionManager().shutdown();
}
公共字符串SendHttpPost(字符串URL,JSONObject jsonObjSend)抛出ClientProtocolException,IOException{
DefaultHttpClient httpclient=新的DefaultHttpClient();
HttpPost httpPostRequest=新的HttpPost(URL);
jsonObjSend.length();
List nameValuePairs=新的ArrayList(jsonObjSend.length());
添加(新的BasicNameValuePair(“数据”,jsonObjSend.toString());
UrlEncodedFormEntity en=新的UrlEncodedFormEntity(nameValuePairs);
en.getContent();
httpPostRequest.getParams().setParameter(“http.socket.timeout”,新整数(600000));
httpPostRequest.setEntity(en);
long t=System.currentTimeMillis();
HttpResponse response=(HttpResponse)httpclient.execute(httpPostRequest);
responses=convertEntityToString(response.getEntity(),“UTF-8”);
回应;
}
查看此项
DefaultHttpClient httpclient = null;
boolean success = false;
try {
httpclient = new DefaultHttpClient();
String url = mDataSupplier.getURL();
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
entity.consumeContent();
}
HttpPost httpost = new HttpPost(url);
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("client", createRequest.toString()));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
response = httpclient.execute(httpost);
entity = response.getEntity();
if (entity != null) {
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if(statusCode != 200){
mResErr.onErrorResponse(statusCode);
}
InputStream is = entity.getContent();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null) {
//System.out.println("Data Sender: " + line);
if(!line.trim().equals("")){
}
}
is.close();
//entity.consumeContent();
} else {
}
success = true;
} catch (Exception e) {
mResErr.onErrorResponse(e);
e.getStackTrace();
}
if (httpclient != null) {
// resource cleanup
httpclient.getConnectionManager().shutdown();
}
public String SendHttpPost(String URL, JSONObject jsonObjSend) throws ClientProtocolException, IOException {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpPostRequest = new HttpPost(URL);
jsonObjSend.length();
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(jsonObjSend.length());
nameValuePairs.add(new BasicNameValuePair("data", jsonObjSend.toString()));
UrlEncodedFormEntity en=new UrlEncodedFormEntity(nameValuePairs);
en.getContent();
httpPostRequest.getParams().setParameter("http.socket.timeout", new Integer(600000));
httpPostRequest.setEntity(en);
long t = System.currentTimeMillis();
HttpResponse response = (HttpResponse) httpclient.execute(httpPostRequest);
responses = convertEntityToString(response.getEntity(), "UTF-8");
return responses;
}