我想向服务器发送一篇帖子,帖子的正文是真是假。我有这个代码,我使用截击库
ShoozyHeader()将内容类型设置为text/plain,并将Accept设置为text/plain以及身份验证所需的其他标头。
如果我尝试http://requestmaker.com/,服务器正确响应,但我运行此代码,服务器响应:
错误的请求-无效的头HTTP错误400。请求的标头名称无效。
如果删除getBody(),服务器响应良好。
final String url = POSTS_URI + idPost + "/likes";
StringRequest strReq = new StringRequest(Request.Method.POST,
url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
Toast.makeText(act, "Network error", Toast.LENGTH_SHORT).show();
}
}
) {
@Override
public byte[] getBody() throws AuthFailureError {
return "true".getBytes();
}
};
您是否在扩展请求的类中重写了GetHeader?
以下是如何:
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return headers != null ? headers : super.getHeaders();
}
下面是设置Base64(用户名、密码)头的示例:
@Override
private HashMap<String, String> getHeaders() {
HashMap<String, String> headers = new HashMap<>();
headers.put("Authorization", getAuthentication("usernameExample", "passwordExample"));
headers.put("Content-Type", "application/json; charset=utf-8");
Log.d(TAG + "");
return headers;
}
private String getAuthentication(String username, String password) {
String credentials = String.format("%s:%s", username, password);
String auth = "Basic " + Base64.encodeToString(credentials.getBytes(), Base64.DEFAULT);
return auth;
}
试试这个,它对我很管用:
JSONObject params = new JSONObject();
try {
params.put("likes", "true");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST,
url, params,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
}) {
/**
* Passing some request headers
* */
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=utf-8");
return headers;
}
};
jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(60000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
// Adding request to request queue
getRequestQueue(jsonObjReq);
我正在尝试使用Volley库与我的RESTful API通信。 当我要持票人代币时,我必须在身体里贴上绳子。字符串应如下所示:grant_type=password 有关WebApi个人帐户的更多信息:http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api 不幸的是,我不知道如何解决它... 我正在尝试
我正在尝试使用Volley获取JSON对象以创建动态自动完成,但在使用Volley请求时,我在日志cat中看到: 截击:[486]基本网络。logSlowRequests:请求的HTTP响应= 这些答案并没有解决我的问题。 这里是初始化请求队列的Singleton类: 发出请求的方法: 下面是HTTP Connector类:
我正在尝试在Android上进行改装,以获得完整的PDF。但目前要得到回应还不完全。 由于HttpLoggingInterceptor,我得到了很多日志: 在我自己的日志上,我只得到了这个: 这是前面显示的日志的第一部分。 有什么想法吗?我被绊倒了。
我想从URL获取一些数据,但服务器速度非常慢。。。因此,每当我使用凌空截击获取数据时,我都会得到TimeOurError,在服务器速度较慢的情况下,我是否可以处理凌空截击应该尝试获取数据多长时间。。。它只需要很少的时间,我也希望不断运行这个请求来检查数据,我计划使用计时器来完成它。。。可以使用计时器连续检查数据吗? 这是我现在的截击请求。。。它适用于其他URL 我需要连续调用这些函数(在应用程序内
我在用Retrofit2。发送一个带有主体的POST请求(作为JSON数组),但得到的是“400 Bad request”。同时,从SoapUI和我的http客户机(基于HttpURLConnection)发送请求也很好。 响应的内容类型是text/plain,但应该是application/json 例如,使用SOAPUI的请求/响应:请求: 及其回应: null 这是服务器endpoint:
当我已经安装模块Volley在android工作室我收到错误: 错误:配置项目“:volley”时出现问题。在C:\Users\egen\AppData\Local\android\sdk Open android sdk Manager中找不到哈希字符串为“android-22”的目标 我已经安装了Android支持库这里怎么了? 编辑 现在我收到了错误: 错误:(10,1)在计算根项目Fysi