HTTP带用户名和密码请求

import java.io.IOException;
import org.apache.commons.codec.binary.Base64;
import com.cn.mid.system.urls.UrlUtils;
import okhttp3.Authenticator;
import okhttp3.Credentials;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.Route;


public class HttpUtils {
private static final OkHttpClient client = new OkHttpClient.Builder()
       .authenticator(new Authenticator() {
         public Request authenticate(Route route, Response response) throws IOException {
           System.out.println("Authenticating for response: " + response);
           System.out.println("Challenges: " + response.challenges());
           return response.request().newBuilder()
               .header("Authorization", "Basic " + Base64.encodeBase64String((username+":"+userpassword).getBytes()))
               .build();
         }
       })
       .build();


/**
* 接口
* @param url
* @param orderNo
* @param userName
* @param userPass
* @return
*/
public static String cancel1(String str) {
try{
Request request = new Request.Builder().url(UrlUtils.CancelLogisticsUrl+str).delete().build();
   Response response = client.newCall(request).execute();
   if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
   String result = response.body().string();
   System.out.println(result);
   return result;
} catch(Exception e) {
e.printStackTrace();
}
return null;
}

你可能感兴趣的:(java代码)