gpt4 book ai didi

java - Android Volley 错误 header 值中的意外字符 0x0a

转载 作者:太空狗 更新时间:2023-10-29 16:29:14 27 4
gpt4 key购买 nike

我正在使用 Android volley 发送 GET 请求,并且我正在以 base64 格式传递 header 。每当标题文本的总数超过 57 个字符时,我就会不断收到此错误:

04-10 11:04:47.593 24274-24516/com.graypeakworkforce.graypeak E/Volley: [722] NetworkDispatcher.run: Unhandled exception java.lang.IllegalArgumentException: Unexpected char 0x0a at 76 in header value: InRlc3QiOiIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5 MDEyMzQ1Njc4OTAifQ== java.lang.IllegalArgumentException: header 值中 76 处的意外字符 0x0a:InRlc3QiOiIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5 MDEyMzQ1Njc4OTAifQ== 在 com.android.okhttp.Headers$Builder.checkNameAndValue(Headers.java:313) 在 com.android.okhttp.Headers$Builder.add(Headers.java:245) 在 com.android.okhttp.internal.huc.HttpURLConnectionImpl.addRequestProperty(HttpURLConnectionImpl.java:579) 在 com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.addRequestProperty(DelegatingHttpsURLConnection.java:186) 在 com.android.okhttp.internal.huc.HttpsURLConnectionImpl.addRequestProperty(HttpsURLConnectionImpl.java) 在 com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:105) 在 com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:96) 在 com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112)

如果我不进行base64编码就没有问题,如果base64字符串小于58个字符就没有问题。我仔细检查了 base64 编码是否正确。

我正在使用 Volley 版本 1.0.0

这是代码:

    Map<String, String> headers = new HashMap<String, String>();

String str = "\"test\":\"123456789012345678901234567890123456789012345678901234567890\"}";

//tried this, doesnt help
//headers.put("Content-Type", "application/json; charset=utf-8");
//tried this, doesnt help
//headers.put("Content-Type", "application/x-www-form-urlencoded");
headers.put("json", stringToBase64(str));


CustomRequest request = new CustomRequest(Request.Method.GET, endpoint+"jobs",new HashMap<String, String>(),headers,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response)
{
standardResponse(response, callback);
}
}, new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
NetworkResponse response = error.networkResponse;
if (error instanceof ServerError && response != null)
{
String res = null;
try
{
res = new String(response.data, HttpHeaderParser.parseCharset(response.headers, "utf-8"));
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
Log.d("debug",res);
}
Log.d("debug",error.toString());
callback.doCallback(false, error.toString(), null);
}
});

request.token = app.dataMgr.currentUser.token;

RequestQueue queue = Volley.newRequestQueue(activity);
queue.add(request);

最佳答案

代替:

Base64.encodeToString(data, Base64.DEFAULT)

我需要做的:

Base64.encodeToString(data, Base64.NO_WRAP); 

关于java - Android Volley 错误 header 值中的意外字符 0x0a,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43327053/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com