下面列出了怎么用com.squareup.okhttp.FormEncodingBuilder的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
protected Void doInBackground(Void... params) {
RequestBody requestBody = new FormEncodingBuilder()
.add("refresh_token", mRefreshToken)
.add("client_id", mClientId)
.add("client_secret", "ADD_YOUR_CLIENT_SECRET")
.add("grant_type", "refresh_token")
.build();
final Request request = new Request.Builder()
.url(Utils.ACCESS_TOKEN_URL)
.post(requestBody)
.build();
mOkHttpClient.newCall(request).enqueue(new HttpCallback(mCallBack));
return null;
}
@Override
protected Void doInBackground(Void... params) {
RequestBody requestBody = new FormEncodingBuilder()
.add("grant_type", "authorization_code")
.add("client_id", mClientId)
.add("client_secret", "ADD_YOUR_CLIENT_SECRET")
.add("redirect_uri","")
.add("code", mCode)
.build();
final Request request = new Request.Builder()
.url(url)
.post(requestBody)
.build();
mOkHttpClient.newCall(request).enqueue(new HttpCallback(mCallBack));
return null;
}
protected void basePost(String url, Map<String, String> params, CallbackListener<T> listener)
{
if (params == null) {
baseGet(url,listener);return;
}
FormEncodingBuilder builder = new FormEncodingBuilder();
Set<Map.Entry<String, String>> entrySet = params.entrySet();
for (Map.Entry<String, String> entry : entrySet) {
builder.add(entry.getKey(), entry.getValue());
}
RequestBody requestBody = builder.build();
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.tag(url)
.build();
doRequest(request, listener);
}
@Override
protected RequestBody buildRequestBody()
{
validParams();
RequestBody requestBody = null;
switch (type)
{
case TYPE_PARAMS:
FormEncodingBuilder builder = new FormEncodingBuilder();
addParams(builder, params);
requestBody = builder.build();
break;
case TYPE_BYTES:
requestBody = RequestBody.create(mediaType != null ? mediaType : MEDIA_TYPE_STREAM, bytes);
break;
case TYPE_FILE:
requestBody = RequestBody.create(mediaType != null ? mediaType : MEDIA_TYPE_STREAM, file);
break;
case TYPE_STRING:
requestBody = RequestBody.create(mediaType != null ? mediaType : MEDIA_TYPE_STRING, content);
break;
}
return requestBody;
}
public static Call post(String url, Map<String, String> params, Object tag, OkHttpCallback responseCallback) {
Request.Builder builder = new Request.Builder().url(url);
if (tag != null) {
builder.tag(tag);
}
FormEncodingBuilder encodingBuilder = new FormEncodingBuilder();
if (params != null && params.size() > 0) {
for (String key : params.keySet()) {
encodingBuilder.add(key, params.get(key));
}
}
RequestBody formBody = encodingBuilder.build();
builder.post(formBody);
Request request = builder.build();
Call call = getInstance().newCall(request);
call.enqueue(responseCallback);
return call;
}
static String postKV(String url) throws IOException {
RequestBody formBody = new FormEncodingBuilder().add("platform", "android").add("name", "bug").build();
Request request = new Request.Builder().url(url).post(formBody).build();
Response response = client.newCall(request).execute();
System.out.println("post KV response =" + response.isSuccessful());
if (response.isSuccessful()) {
return response.body().string();
} else {
throw new IOException("Unexpected code " + response);
}
}
static String postKV(String url) throws IOException {
RequestBody formBody = new FormEncodingBuilder().add("platform", "android").add("name", "bug").build();
Request request = new Request.Builder().url(url).post(formBody).build();
Response response = client.newCall(request).execute();
System.out.println("post KV response =" + response.isSuccessful());
if (response.isSuccessful()) {
return response.body().string();
} else {
throw new IOException("Unexpected code " + response);
}
}
static String postKV(String url) throws IOException {
RequestBody formBody = new FormEncodingBuilder().add("platform", "android").add("name", "bug").build();
Request request = new Request.Builder().url(url).post(formBody).build();
Response response = client.newCall(request).execute();
System.out.println("post KV response =" + response.isSuccessful());
if (response.isSuccessful()) {
return response.body().string();
} else {
throw new IOException("Unexpected code " + response);
}
}
private void addParams(FormEncodingBuilder builder)
{
if (params == null || params.isEmpty())
{
builder.add("1", "1");
return;
}
for (String key : params.keySet())
{
builder.add(key, params.get(key));
}
}
/**
* Build a form-encoding request body with the given form parameters.
*
* @param formParams Form parameters in the form of Map
* @return RequestBody
*/
public RequestBody buildRequestBodyFormEncoding(Map<String, Object> formParams) {
FormEncodingBuilder formBuilder = new FormEncodingBuilder();
for (Entry<String, Object> param : formParams.entrySet()) {
formBuilder.add(param.getKey(), parameterToString(param.getValue()));
}
return formBuilder.build();
}
/**
* Build a form-encoding request body with the given form parameters.
*
* @param formParams Form parameters in the form of Map
* @return RequestBody
*/
public RequestBody buildRequestBodyFormEncoding(Map<String, Object> formParams) {
FormEncodingBuilder formBuilder = new FormEncodingBuilder();
for (Entry<String, Object> param : formParams.entrySet()) {
formBuilder.add(param.getKey(), parameterToString(param.getValue()));
}
return formBuilder.build();
}
private void addParams(FormEncodingBuilder builder, Map<String, String> params)
{
if (builder == null)
{
throw new IllegalArgumentException("builder can not be null .");
}
if (params != null && !params.isEmpty())
{
for (String key : params.keySet())
{
builder.add(key, params.get(key));
}
}
}
private Request buildPostRequest(String url, List<Param> params) {
FormEncodingBuilder builder = new FormEncodingBuilder();
for (Param param : params) {
builder.add(param.key, param.value);
}
RequestBody requestBody = builder.build();
return new Request.Builder().url(url).post(requestBody).build();
}
public Request commentOnStoryRequest(String itemId, String comment, String hmac) {
RequestBody requestBody = (new FormEncodingBuilder())
.add("parent", itemId)
.add("goto", (new StringBuilder()).append("item?id=").append(itemId).toString())
.add("text", comment)
.add("hmac", hmac)
.build();
return createAuthRequest(requestBody);
}
public Request replyToCommentRequest(String itemId, String commentId, String comment, String hmac) {
RequestBody requestBody = (new FormEncodingBuilder())
.add("parent", commentId)
.add("goto", (new StringBuilder()).append("item?id=").append(itemId).toString())
.add("text", comment)
.add("hmac", hmac)
.build();
return createAuthRequest(requestBody);
}
private synchronized void submit() {
LinearLayout alertLayout = (LinearLayout)LayoutInflater.from(MainActivity.this).inflate(R.layout.sending_alert,null);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setCancelable(false).setView(alertLayout).setNegativeButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
mAlertDialog = builder.show();
//Button isn't null after show
Button button = mAlertDialog.getButton(AlertDialog.BUTTON_NEGATIVE);
button.setBackgroundResource(R.drawable.black_background_state);
button.setTextColor(MainActivity.this.getResources().getColor(android.R.color.white));
if(hasBeenSubmitted()) {
((TextView)mAlertDialog.findViewById(android.R.id.text1)).setText(R.string.alreadySent);
mAlertDialog.findViewById(R.id.sending_progressbar).setVisibility(View.GONE);
button.setEnabled(true);
} else {
button.setEnabled(false);
final JSONObject deviceInformation = DeviceInformation.getInstance().getDeviceInformation();
if(null != mDeviceName && 0 != mDeviceName.length()) {
try {
deviceInformation.put("name", mDeviceName);
} catch (JSONException e) {
e.printStackTrace();
}
}
RequestBody formBody = new FormEncodingBuilder().add("device", deviceInformation.toString()).build();
Request request = new Request.Builder().url(getString(R.string.submit)).addHeader("User-Agent", "APP").post(formBody).build();
client.newCall(request).enqueue(new HTTPCallback(this.getApplication()));
}
}
protected Request buildLoginRequest() {
String user = settings.getString("eid", "error");
String pw = UTilitiesApplication.getInstance().getSecurePreferences()
.getString("password", "error");
RequestBody requestBody = new FormEncodingBuilder()
.add(userNameKey, user)
.add(passwordKey, pw)
.build();
return new Request.Builder()
.url(url)
.post(requestBody)
.build();
}
private RequestBody buildInitialRequestBody() {
FormEncodingBuilder postdata = new FormEncodingBuilder();
if (TransactionType.Bevo.equals(mType)) {
postdata.add("sRequestSw", "B");
} else if (TransactionType.Dinein.equals(mType)) {
postdata.add("rRequestSw", "B");
}
return postdata.build();
}
private RequestBody builderFormData(Map<String,String> params){
FormEncodingBuilder builder = new FormEncodingBuilder();
if(params !=null){
for (Map.Entry<String,String> entry :params.entrySet() ){
builder.add(entry.getKey(),entry.getValue());
}
String token = CniaoApplication.getInstance().getToken();
if (!TextUtils.isEmpty(token)) {
builder.add("token", token);
}
}
return builder.build();
}