点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,专家
我正在使用Android上的Volley API调用SAP的oData服务,并为Request.POST收到HTTP 403错误。 但是对于另一个Service程序的Request.GET来说运行正常。 我可以知道我的调用oData Service的代码是否存在任何问题。
我传递了从我的第一个请求调用中获得的MYSAPSSO2令牌和CSRF令牌。 但是出现身份验证错误。 知道这里缺少什么吗?
使用JQUERY/SAPUI5的相同oData POST服务运行正常,没有任何问题。
尝试{ /** json对象参数**/ JSONObject jsonObject =新的JSONObject(); jsonObject.put(" SO",so); jsonObject.put(" STATUS",status); jsonObject.put(" NET_VALUE",数量); Log.i(" XXXX",thisMethod +" jsonObject params" + jsonObject.toString()+""); JsonObjectRequest jsonObjectRequest =新的JsonObjectRequest(Request.Method.GET,url,null,新的Response.Listener(){ @Override 公共无效onResponse(JSONObject jsonRespObj){ Log.i(" XXXX",thisMethod +"来自通知服务的响应:" + jsonRespObj.toString()); } },新的Response.ErrorListener(){ @Override 公共无效onErrorResponse(VolleyError volleyError){ Log.i(" XXXXX",thisMethod +"错误响应:" + volleyError); volleyError.printStackTrace(); } } ){ @Override 公共Map getHeaders()抛出AuthFailureError { Map 参数= new HashMap (); 如果(mysapsso2!= null){ Log.i(" XXX",thisMethod +" MYSAPSSO2是:" + TokenHandler.getMYSAPSSO2Token()); Log.i(" XXXX",thisMethod +" X-CSRF-Token是:" + TokenHandler.getCSRFToken()); params.put(" Cookie",ServiceClass.mysapsso2); params.put(" X-CSRF-Token",TokenHandler.getCSRFToken()); params.put(" contentType"," application/json"); } 返回参数 } }; queue.add(jsonObjectRequest); } catch(JSONException e){ Log.e(" XXX",thisMethod +"出现错误=>" + e.getMessage()); e.printStackTrace(); } catch(例外e){ Log.e(" XXXX",thisMethod +"出现错误=>" + e.getMessage()); e.printStackTrace(); }
您是否连接到基于Netweaver的系统? 您可以检查OCF的相应ICF节点是否处于活动状态吗?
我认为您是说odata服务是否在oData节点下的SICF中处于活动状态? 是的,它是活动的。 当厌倦了SAPUI5中的jQuery.ajax或ODATAModel时,相同的服务可以正常工作,但是我想出于其他目的从Android的Volley API中访问该服务,但失败了。
一周热门 更多>