我正在调用SalesForce REST Api。
然而,我有一个非常奇怪的错误。最初我在VB.NET模块文件中写了这个。一切正常,只要我把方法放在一个类中,我就会一直得到错误Invalid Session ID
错误。该错误似乎并未表明代码的哪一部分失败。
我正在使用RestSharp来促进对SalesForce API的调用,我知道它的工作原理,因为在模块文件中我能够获取我需要的数据。
我不明白为什么它在模块文件中工作但不在类文件中的基本原理。
无论如何,这是我在类文件和模块文件中放置的代码,以方便调用:
client = New RestClient(_strURI)
request = New RestRequest(Method.POST)
request.AddParameter("grant_type", "password")
request.AddParameter("client_id", _strClientID)
request.AddParameter("client_secret", _strClientSecret)
request.AddParameter("redirect_uri", _strRedirectUrl)
request.AddParameter("username", _strUserName)
request.AddParameter("password", _strPassword & _strSecurityToken)
'Dim response As IRestResponse
Dim response As IRestResponse = Nothing
response = client.Execute(request)
'This is the offending line in the class file..it returns back a HTTP 200 yet gives me that Session Invalid error
If response.StatusCode <> HttpStatusCode.BadRequest Then
token = JsonConvert.DeserializeObject(Of TokenResponse)(response.Content)
Dim listViewResults As String = HttpGet(token.instance_url & "/services/data/v38.0/sobjects/Contact/listviews", "")
我不确定这是一个许可问题还是更多的编程错误;因为在这两种情况下所有的认证字符串都是相同的。目前,我已将其硬编码为指向测试配置文件。所以我无法确定我到底做错了什么?
任何帮助都足够了。
答案 0 :(得分:0)
愚蠢的我,
无论如何,在我发布这篇文章后不久,我去了办公室外走了一圈。结果是用词不当。
我在模块文件中定义了相同的HttpGet
方法,并且忘记了将其复制并粘贴到类文件中。当我真正介入它时,它在里面扔了一个Exception
。
原来唯一需要修复的方法是将该方法放入类文件中。