Source:
<code>public Response execute() throws IOException { if (method == null) throw new IOException(app.getString(R.string.method_null)); Request.Builder requestBuilder = new Request.Builder(); String url = app.getServerURI() + path; requestBuilder.addHeader("client", "Android"); switch (method) { case "GET": requestBuilder.url(generateURL(url, properties)).get(); break; case "DELETE": FormBody.Builder formDeleteBody = new FormBody.Builder(); for (Map.Entry<String, String> map : properties.entrySet()) { formDeleteBody.addEncoded(map.getKey(), map.getValue()); } requestBuilder.url(url).delete(formDeleteBody.build()); break; case "POST": FormBody.Builder formBody = new FormBody.Builder(); for (Map.Entry<String, String> map : properties.entrySet()) { <START> formBody.addEncoded(map.getKey(), map.getValue()); <END> } requestBuilder.url(url).post(formBody.build()); break; case "PUT": FormBody.Builder builder = new FormBody.Builder(); for (Map.Entry<String, String> map : properties.entrySet()) { builder.addEncoded(map.getKey(), map.getValue()); } requestBuilder.url(url).put(builder.build()); break; default: throw new IOException(app.getString(R.string.method_error)); } if (this.app.getApiKey() != null) { String authstr = this.app.getEmail() + ":" + this.app.getApiKey(); requestBuilder.addHeader("Authorization", "Basic " + Base64.encodeToString(authstr.getBytes(), Base64.NO_WRAP)); } request = requestBuilder.build(); Log.i("OkHTTP.request", method + " " + request.url().toString()); response = okHttpClient.newCall(request).execute(); return response; }</code><technical_language>running a problem logging in email. This API addEncoded is transforming @ encoded version %40, making I log in. :(</technical_language>

Target:
public Response execute() throws IOException { if (method == null) throw new IOException(app.getString(R.string.method_null)); Request.Builder requestBuilder = new Request.Builder(); String url = app.getServerURI() + path; requestBuilder.addHeader("client", "Android"); switch (method) { case "GET": requestBuilder.url(generateURL(url, properties)).get(); break; case "DELETE": FormBody.Builder formDeleteBody = new FormBody.Builder(); for (Map.Entry<String, String> map : properties.entrySet()) { formDeleteBody.add(map.getKey(), map.getValue()); } requestBuilder.url(url).delete(formDeleteBody.build()); break; case "POST": FormBody.Builder formBody = new FormBody.Builder(); for (Map.Entry<String, String> map : properties.entrySet()) { formBody.add(map.getKey(), map.getValue()); } requestBuilder.url(url).post(formBody.build()); break; case "PUT": FormBody.Builder builder = new FormBody.Builder(); for (Map.Entry<String, String> map : properties.entrySet()) { builder.add(map.getKey(), map.getValue()); } requestBuilder.url(url).put(builder.build()); break; default: throw new IOException(app.getString(R.string.method_error)); } if (this.app.getApiKey() != null) { String authstr = this.app.getEmail() + ":" + this.app.getApiKey(); requestBuilder.addHeader("Authorization", "Basic " + Base64.encodeToString(authstr.getBytes(), Base64.NO_WRAP)); } Request request = requestBuilder.build(); Log.i("OkHTTP.request", method + " " + request.url().toString()); response = okHttpClient.newCall(request).execute(); return response; }