android–EVolley:[194] BasicNetwork.performRequest:url的意外响应代码307

android–EVolley:[194] BasicNetwork.performRequest:url的意外响应代码307,第1张

概述我试图通过POST发送一个jsonobj通过我的Android应用程序中的排球api并捕获json响应但我一直收到此错误: E/Volley:[194]BasicNetwork.performRequest:http://phoneapi.adro.co/Services/AdService.svc/GetAd的意外响应代码307.有一段代码发出请求:publicclassJsonObjectSen

我试图通过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>
      &LT 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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1111158.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存