2015-12-18 21 views
0

当我工作的理解Yodlee公司聚集的Java API来实现他们在我application.I试图测试从Yodlee公司驱动器以及Java为例,探讨的API获取com.yodlee.core.IncompleteArgumentException。执行addSiteAccount1

I tried to add a new site account by using the addSiteAccount1 api but I got the following exception in test drive: 

> { 
>  "errorOccurred": "true", 
>  "exceptionType": "com.yodlee.core.IncompleteArgumentException", 
>  "referenceCode": "_0941afbc-10ed-4420-beaf-e8637ec5f7e2", 
>  "message": "PASSWORD" } 
> 
> Following are the parameters I passed in test drive 
> 
> cobSessionToken * 
> 08062013_0:66add93284e25548f783b432bdf55ead14ff7a153378f06285db3a46a5c675d101dac065d778adf446e38963ad21cd9c6771fe9568bfbd15d5a8ffeffc4b1aa4 
> userSessionToken * 
> 08062013_0:4efcec3bf34d801d7ad85bd019968a40ef432006545778a0b0920ae15bd1f623faa86236bc6ba82e1e321461f75316db85a03dfcf0305a9d13f99c4ba58ea95e 
> siteId * 16441 credentialFields.enclosedType * 
> com.yodlee.common.FieldInfoSingle credentialFields[0].displayName * 
> Username credentialFields[0].fieldType.typeName * IF_LOGIN 
> credentialFields[0].helpText 150862 credentialFields[0].maxlength 40 
> credentialFields[0].name * LOGIN credentialFields[0].size 20 
> credentialFields[0].value * sha5.Investment1 
> credentialFields[0].valueIdentifier * LOGIN 
> credentialFields[0].valueMask * LOGIN_FIELD 
> credentialFields[0].isEditable * true credentialFields[1].displayName 
> * Password credentialFields[1].fieldType.typeName * IF_PASSWORD credentialFields[1].helpText 150863 credentialFields[1].maxlength 40 
> credentialFields[1].name * PASSWORD1 credentialFields[1].size 20 
> credentialFields[1].value * Investment1 
> credentialFields[1].valueIdentifier * PASSWORD 
> credentialFields[1].valueMask * LOGIN_FIELD 
> credentialFields[1].isEditable * true 

我也试图做同样的,从我的应用程序,但走T,则下面的错误:

{"exceptionType":"Exception Occurred","referenceCode":"_3b60bb3c-99d7-470a-bba0-a9fdb83eccf8","errorOccurred":"true"}

以下是我的代码:

public JSONObject addSiteAccount(String cobrandSessionToken,String userSessionToken) { 
     DefaultHttpClient httpclient = new DefaultHttpClient(); 
     JSONObject result = new JSONObject(); 
     String url = "https://rest.developer.yodlee.com/services/srest/restserver/v1.0/jsonsdk/SiteAccountManagement/addSiteAccount1"; 
     try { 
      HttpsURLConnection.setDefaultHostnameVerifier(new NullHostnameVerifier()); 

      PostMethod pm = new PostMethod(url); 
      pm.addParameter(paramNameCobSessionToken, cobrandSessionToken); 
      pm.addParameter(paramNameUserSessionToken, userSessionToken); 

      pm.addParameter("credentialFields[0].name", "LOGIN"); 
      pm.addParameter("credentialFields[0].displayName", "Username"); 
      pm.addParameter("credentialFields[0].isEditable", "true"); 
      pm.addParameter("credentialFields[0].isOptional", "false"); 
      pm.addParameter("credentialFields[0].helpText", "22059"); 
      pm.addParameter("credentialFields[0].valuePattern", "null"); 
      pm.addParameter("credentialFields[0].defaultValue", "null"); 
      pm.addParameter("credentialFields[0].value", "test1"); 
      pm.addParameter("credentialFields[0].validValues", "test1"); 
      pm.addParameter("credentialFields[0].displayValidValues", "null"); 
      pm.addParameter("credentialFields[0].valueIdentifier", "LOGIN"); 
      pm.addParameter("credentialFields[0].valueMask", "LOGIN_FIELD"); 
      pm.addParameter("credentialFields[0].fieldType", "LOGIN"); 
      pm.addParameter("credentialFields[0].validationRules", "null"); 
      pm.addParameter("credentialFields[0].size", "20"); 
      pm.addParameter("credentialFields[0].maxlength", "40"); 
      pm.addParameter("credentialFields[0].userProfileMappingExpression", 
        "null"); 
      pm.addParameter("credentialFields[0].fieldErrorCode", "1"); 
      pm.addParameter("credentialFields[0].fieldErrorMessage", "null"); 

      pm.addParameter("credentialFields[1].name", "PASSWORD"); 
      pm.addParameter("credentialFields[1].displayName", "Password"); 
      pm.addParameter("credentialFields[1].isEditable", "true"); 
      pm.addParameter("credentialFields[1].isOptional", "false"); 
      pm.addParameter("credentialFields[1].helpText", "AUS_Row_Name"); 
      pm.addParameter("credentialFields[1].valuePattern", "null"); 
      pm.addParameter("credentialFields[1].defaultValue", "null"); 
      pm.addParameter("credentialFields[1].value", "test2"); 
      pm.addParameter("credentialFields[1].validValues", "test2"); 
      pm.addParameter("credentialFields[1].displayValidValues", "null"); 
      pm.addParameter("credentialFields[1].valueIdentifier", "PASSWORD"); 
      pm.addParameter("credentialFields[1].valueMask", "LOGIN_FIELD"); 
      pm.addParameter("credentialFields[1].fieldType", "PASSWORD"); 
      pm.addParameter("credentialFields[1].validationRules", "null"); 
      pm.addParameter("credentialFields[1].size", "20"); 
      pm.addParameter("credentialFields[1].maxlength", "40"); 
      pm.addParameter("credentialFields[1].userProfileMappingExpression", 
        "null"); 
      pm.addParameter("credentialFields[1].fieldErrorCode", "1"); 
      pm.addParameter("credentialFields[1].fieldErrorMessage", "null"); 
      pm.addParameter("credentialFields.objectInstanceType", 
        "[Lcom.yodlee.common.FieldInfoSingle;"); 

      pm.addParameter("siteId", "8995"); 
      // pm.addParameter("siteId.objectInstanceType", "long"); 

      HttpClient hc = new HttpClient(); 
      hc.executeMethod(pm); 

      String source = pm.getResponseBodyAsString(); 

      System.out.println(pm.getResponseBodyAsString()); 

      result = new JSONObject(source); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      httpclient.getConnectionManager().shutdown(); 
     } 

     return result; 
    } 

在此先感谢 Abhisek

回答

0

@Abhisek,

检查该站点对此请求所需的参数。每个站点都有自己的输入命名约定。您可以查看网站的形式和使用here

更好的方法是动态生成所有这些参数与循环的参数。