![android–EVolley:[194] BasicNetwork.performRequest:url的意外响应代码307,第1张 android–EVolley:[194] BasicNetwork.performRequest:url的意外响应代码307,第1张](/aiimages/android%E2%80%93EVolley%EF%BC%9A%5B194%5D+BasicNetwork.performRequest%EF%BC%9Aurl%E7%9A%84%E6%84%8F%E5%A4%96%E5%93%8D%E5%BA%94%E4%BB%A3%E7%A0%81307.png)
我试图通过POST发送一个Json obj通过我的Android应用程序中的排球API并捕获Json响应但我一直收到此错误:
E / Volley:[194] BasicNetwork.performRequest:http://phoneapi.adro.co/Services/AdService.svc/GetAd的意外响应代码307.
有一段代码发出请求:
public class JsonObjectSend{ private static final String TAG_action = "Action"; private static final String TAG_acValue = "ActionValue"; private static final String TAG_bg = "Bgcolor"; private static final String TAG_ID = "CampID"; private static final String TAG_ctype = "CampType"; private static final String TAG_adr = "ClickAddress"; private static final String TAG_endAnim = "EndAnimation"; private static final String TAG_expText = "ExplainText"; private static final String TAG_imType = "ImageType"; private static final String TAG_imgUBanner = "ImageUrlBanner"; private static final String TAG_imgulBanner = "ImageUrlLargBanner"; private static final String TAG_imgUMRect = "ImageUrlMediumRectange"; private static final String TAG_imgUFBanner = "ImageUrlFullBanner"; private static final String TAG_imguleadBrd = "ImageUrlleaderBoard"; private static final String TAG_logoU = "logoUrl"; private static final String TAG_mainText = "MainText"; private static final String TAG_packname = "Packagename"; private static final String TAG_repText = "ReplaceText"; private static final String TAG_startAnim = "StartAnimation"; private static final String TAG_vIDeoU = "VIDeoUrl"; private static final String TAG_type = "type"; private static final String TAG_atag = "atag"; private static final String TAG_msg = "message"; private static final String TAG_pix = "pixel"; private static final String TAG_scrpt = "script"; private static final String TAG_tkn = "token"; public voID sendobj() { JsONObject JsonBody = new JsONObject(); try { JsonBody.put("deviceid", "sdasda"); JsonBody.put("AppID", "ECC7BCE40126408386BCFCF8AB9187E7"); JsonBody.put("AdType", "text"); JsonBody.put("Location", "35.7209331,51.472983"); JsonBody.put("UserOperator", "Irancell"); JsonBody.put("Ip", "127.0.0.1"); JsonBody.put("NetworkType", "3G"); JsonBody.put("DeviceType", "AndroID"); JsonBody.put("DeviceBrand", "Samsung"); JsonBody.put("WIDth", "0"); JsonBody.put("Height", "0"); JsonBody.put("TestMode", "true"); } catch (JsONException e) { e.printstacktrace(); } String tag_string_req = "Send_Object"; JsonObjectRequest Req = new JsonObjectRequest(Request.Method.POST, AppConfig.API_URL, JsonBody, new Response.Listener<JsONObject>() { @OverrIDe public voID onResponse(JsONObject response) { try { JsONObject jObj = response; boolean error = jObj.getBoolean("error"); if (!error) { String action = jObj.getString(TAG_action); String actionvalue = jObj.getString(TAG_acValue); String bg = jObj.getString(TAG_bg); String campID = jObj.getString(TAG_ID); String camptype = jObj.getString(TAG_ctype); String clickadr = jObj.getString(TAG_adr); String endanim = jObj.getString(TAG_endAnim); String exptext = jObj.getString(TAG_expText); String imgtype = jObj.getString(TAG_imType); String imgurlbanner = jObj.getString(TAG_imgUBanner); String imgurllargebanner = jObj.getString(TAG_imgulBanner); String imgurlmedrectangle = jObj.getString(TAG_imgUMRect); String imgurlfullbanner = jObj.getString(TAG_imgUFBanner); String imgurlleaderboard = jObj.getString(TAG_imguleadBrd); String logourl = jObj.getString(TAG_logoU); String maintext = jObj.getString(TAG_mainText); String packagename = jObj.getString(TAG_packname); String replacetext = jObj.getString(TAG_repText); String startenim = jObj.getString(TAG_startAnim); String vIDeourl = jObj.getString(TAG_vIDeoU); String type = jObj.getString(TAG_type); String atag = jObj.getString(TAG_atag); String msg = jObj.getString(TAG_msg); String pixel = jObj.getString(TAG_pix); String script = jObj.getString(TAG_scrpt); String token = jObj.getString(TAG_tkn); Log.d("action", action); } else { String errorMsg = jObj.getString("error_msg"); Log.d("DeBUG", errorMsg); } } catch (JsONException e) { e.printstacktrace(); } } }, new Response.ErrorListener() { @OverrIDe public voID one rrorResponse(VolleyError error) { Log.d("error","Error"); } }) { @OverrIDe protected Map<String, String> getParams() throws AuthFailureError { // Posting params to register url Map<String, String> params = new HashMap<String, String>(); params.put("Content-Type", "application/Json; charset=utf-8"); return params; }// }; // Adding request to request queue AppController.getInstance().addToRequestQueue(Req, tag_string_req); }}//class end这是我的app控制器类:
public class AppController extends Application{ public static final String TAG = AppController.class.getSimplename(); private RequestQueue mRequestQueue; private static AppController mInstance; @OverrIDe public voID onCreate() { super.onCreate(); mInstance = this; } public static synchronized AppController getInstance() { return mInstance; } public RequestQueue getRequestQueue() { if (mRequestQueue == null) { // mRequestQueue = Volley.newRequestQueue(getApplicationContext()); Network network = new BasicNetwork(new OkhttpStack()); mRequestQueue = new RequestQueue(new diskBasedCache(new file(getCacheDir(), "volley")), network); mRequestQueue.start(); } return mRequestQueue; } public class OkhttpStack extends HurlStack { private final OkUrlFactory mFactory; public OkhttpStack() { this(new OkhttpClIEnt()); } private OkhttpClIEnt getUnsafeOkhttpClIEnt() { try { final TrustManager[] trustAllCerts = new TrustManager[] { new x509trustmanager() { @OverrIDe public voID checkClIEntTrusted(java.security.cert.X509Certificate[] chain, String authType) {} @OverrIDe public voID checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {} @OverrIDe public java.security.cert.X509Certificate[] getAcceptedissuers() { return null; } } }; final SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); OkhttpClIEnt okhttpClIEnt = new OkhttpClIEnt(); okhttpClIEnt.setSslSocketFactory(sslSocketFactory); okhttpClIEnt.setHostnameVerifIEr(new HostnameVerifIEr() { @OverrIDe public boolean verify(String hostname, SSLSession session) { return true; } }); return okhttpClIEnt; } catch (Exception e) { throw new RuntimeException(e); } } public OkhttpStack(OkhttpClIEnt clIEnt) { clIEnt=getUnsafeOkhttpClIEnt(); if (clIEnt == null) { throw new NullPointerException("ClIEnt must not be null."); } mFactory = new OkUrlFactory(clIEnt); } @OverrIDe protected httpURLConnection createConnection(URL url) throws IOException { return mFactory.open(url); } } public <T> voID addToRequestQueue(Request<T> req, String tag) { req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); getRequestQueue().add(req); } public <T> voID addToRequestQueue(Request<T> req) { req.setTag(TAG); getRequestQueue().add(req); } public voID cancelPendingRequests(Object tag) { if (mRequestQueue != null) { mRequestQueue.cancelAll(tag); } }}这是我的完整logcat:
06-17 23:20:54.637 14338-14338/? I/art﹕ Late-enabling -Xcheck:jni06-17 23:20:54.751 14338-14338/ir.adro.adrosdk I/WebVIEwFactory﹕ Loading com.androID.webvIEw version 37 (eng.buildbot-x86) (code 199997)06-17 23:20:54.757 14338-14338/ir.adro.adrosdk I/libraryLoader﹕ Loading: webvIEwchromium06-17 23:20:54.758 14338-14338/ir.adro.adrosdk I/libraryLoader﹕ Time to load native librarIEs: 1 ms (timestamps 9529-9530)06-17 23:20:54.758 14338-14338/ir.adro.adrosdk I/libraryLoader﹕ Expected native library version number "",actual native library version number ""06-17 23:20:54.766 14338-14338/ir.adro.adrosdk V/WebVIEwChromiumFactoryProvIDer﹕ Binding Chromium to main looper Looper (main, tID 1) {39d8cd06}06-17 23:20:54.767 14338-14338/ir.adro.adrosdk I/libraryLoader﹕ Expected native library version number "",actual native library version number ""06-17 23:20:54.767 14338-14338/ir.adro.adrosdk I/chromium﹕ [INFO:library_loader_hooks.cc(106)] Chromium logging enabled: level = 0, default verbosity = 006-17 23:20:54.771 14338-14338/ir.adro.adrosdk I/browserStartupController﹕ Initializing chromium process, renderers=006-17 23:20:54.771 14338-14338/ir.adro.adrosdk W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring06-17 23:20:54.775 14338-14338/ir.adro.adrosdk W/chromium﹕ [WARNING:resource_bundle.cc(315)] locale_file_path.empty()06-17 23:20:54.776 14338-14338/ir.adro.adrosdk I/chromium﹕ [INFO:aw_browser_main_parts.cc(63)] Load from apk succesful, fd=32 off=46092 len=295306-17 23:20:54.776 14338-14338/ir.adro.adrosdk I/chromium﹕ [INFO:aw_browser_main_parts.cc(78)] Loading webvIEwchromium.pak from, fd:33 off:228796 len:64366706-17 23:20:54.780 14338-14358/ir.adro.adrosdk W/AudioManagerAndroID﹕ Requires BLUetoOTH permission06-17 23:20:54.787 14338-14338/ir.adro.adrosdk D/libEGL﹕ loaded /system/lib/egl/libEGL_emulation.so06-17 23:20:54.788 14338-14338/ir.adro.adrosdk D/libEGL﹕ loaded /system/lib/egl/libGLESv1_CM_emulation.so06-17 23:20:54.797 14338-14338/ir.adro.adrosdk D/libEGL﹕ loaded /system/lib/egl/libGLESv2_emulation.so06-17 23:20:54.806 14338-14338/ir.adro.adrosdk D/﹕ HostConnection::get() New Host Connection established 0xa363fc10, tID 1433806-17 23:20:54.859 14338-14338/ir.adro.adrosdk W/chromium﹕ [WARNING:mailBox_synchronizer.cc(36)] MailBoxSync not supported due to missing EGL image/fence support06-17 23:20:54.871 14338-14338/ir.adro.adrosdk W/chromium﹕ [WARNING:data_reduction_proxy_settings.cc(403)] SPDY proxy OFF at startup06-17 23:20:54.881 14338-14338/ir.adro.adrosdk W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring06-17 23:20:54.882 14338-14338/ir.adro.adrosdk W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring06-17 23:20:54.908 14338-14364/ir.adro.adrosdk W/chromium﹕ [WARNING:proxy_service.cc(901)] PAC support Disabled because there is no system implementation06-17 23:20:54.910 14338-14379/ir.adro.adrosdk D/Openglrenderer﹕ Render dirty regions requested: true06-17 23:20:54.912 14338-14338/ir.adro.adrosdk D/Atlas﹕ ValIDating map...06-17 23:20:54.980 14338-14379/ir.adro.adrosdk I/Openglrenderer﹕ Initialized EGL, version 1.406-17 23:20:54.980 14338-14379/ir.adro.adrosdk D/﹕ HostConnection::get() New Host Connection established 0xa1f9fdc0, tID 1437906-17 23:20:55.005 14338-14379/ir.adro.adrosdk D/Openglrenderer﹕ Enabling deBUG mode 006-17 23:20:55.023 14338-14379/ir.adro.adrosdk W/EGL_emulation﹕ eglSurfaceAttrib not implemented06-17 23:20:55.023 14338-14379/ir.adro.adrosdk W/Openglrenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa1fba7a0, error=EGL_SUCCESS06-17 23:20:55.235 14338-14377/ir.adro.adrosdk E/Volley﹕ [199] BasicNetwork.performRequest: Unexpected response code 307 for http://phoneAPI.adro.co/Services/AdService.svc/GetAd06-17 23:20:55.235 14338-14338/ir.adro.adrosdk D/error﹕ Error任何人都可以告诉我为什么我一直收到这个错误?
解决方法:
您可以通过在网址末尾添加/来避免307响应代码,即http://phoneAPI.adro.co/Services/AdService.svc/GetAd/
然后使用以下示例代码(我使用了您的JsonBody),您应该检查您的Web服务,因为此代码将获得400响应代码
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, JsonBody, new Response.Listener<JsONObject>() { @OverrIDe public voID onResponse(JsONObject response) { Log.i("onResponse", response.toString()); }}, new Response.ErrorListener() { @OverrIDe public voID one rrorResponse(VolleyError error) { Log.i("onErrorResponse", error.toString()); }}){ @OverrIDe protected VolleyError parseNetworkError(VolleyError volleyError) { if(volleyError.networkResponse != null && volleyError.networkResponse.data != null){ VolleyError error = new VolleyError(new String(volleyError.networkResponse.data)); volleyError = error; } return volleyError; }};调试时(在VolleyError错误设置断点=新VolleyError(新String(volleyError.networkResponse.data));),你会得到一些信息,如
服务器遇到处理请求的错误.异常消息是“对象引用未设置为对象的实例.”.请参阅服务器日志以获取更多详异常堆栈跟踪是:< / p>
< p为H.在AdroMobileAPI.Services.AdService.GetAd(AdRequest请求)
在SyncInvokeGetAd(Object,Object [],Object [])
在System.ServiceModel.dispatcher.SyncmethodInvoker.Invoke(对象实例,对象[]输入,对象[]& amp;输出)
在System.ServiceModel.dispatcher.dispatchOperationRuntime.InvokeBegin(MessageRpc& amp; rpc)
在System.ServiceModel.dispatcher.ImmutabledispatchRuntime.ProcessMessage5(MessageRpc& amp; rpc)
在System.ServiceModel.dispatcher.ImmutabledispatchRuntime.ProcessMessage11(MessageRpc& amp; rpc)
在System.ServiceModel.dispatcher.MessageRpc.Process(Boolean isOperationContextSet)< / p>
以上是内存溢出为你收集整理的android – E / Volley:[194] BasicNetwork.performRequest:url的意外响应代码307全部内容,希望文章能够帮你解决android – E / Volley:[194] BasicNetwork.performRequest:url的意外响应代码307所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)