public class NetConnection {

public NetConnection(final String url,final HttpMethod method,final SuccessCallbcak succssscallback,final FailCallback failcallback,final String ... kvs){

new AsyncTask<Void, Void, String>() { @Override
protected String doInBackground(Void... params) {

StringBuffer bufferStr = new StringBuffer();
for (int i = 0; i < kvs.length; i+=2) {
bufferStr.append(kvs[i]).append("=").append(kvs[i+1]).append("&");
}

try {
URLConnection uc = null;

switch (method) {
case POST:
uc = new URL(url).openConnection();
uc.setDoInput(true);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(uc.getOutputStream(),Config.CHARSET));
bw.write(bufferStr.toString());
Log.i("name", bufferStr.toString());
bw.flush();
break; default:
uc = new URL(url+"?"+bufferStr.toString()).openConnection();
break;
}

BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream(),Config.CHARSET));
String line = null;
StringBuffer result = new StringBuffer();
while ((line = br.readLine())!=null) {
result.append(line);
}
return result.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

@Override
protected void onPostExecute(String result) {

if(result!=null){
if(succssscallback!=null){
succssscallback.onSuccess(result);
}
}else {
if (failcallback!=null) {
failcallback.onFail();
}
}

super.onPostExecute(result);
}
}.execute();

}


public static interface SuccessCallbcak{
void onSuccess(String result);
}

public static interface FailCallback{
void onFail();
}
}这是Connection的代码。。

解决方案 »

  1.   

    没细看,提醒你一下,你是否在manifest里面加了访问网络的权限
      

  2.   

    bufferStr.append(kvs[i]).append("=").append(kvs[i+1]).append("&");
    到最后一个参数时,可能多余了一个&
      

  3.   

     java.net.ProtocolException: method does not support a request body: GET, 不支持GET方法,用post请求试试
      

  4.   

    用setRequestMethod方法设置成POST试一下!