2
我已經發出了PUT
請求,並在RestSharp.Portable
了NullReferenceException
:我如何找到RestSharp PUT引發異常的原因?
using (var client = new RestClient(new Uri(BaseUri)))
{
var oAuth1Authenticator = OAuth1Authenticator.ForAccessToken(
OAuthConsumerKey,
OAuthConsumerSecret,
oAuthToken",
oAuthSecret"
);
client.Authenticator = oAuth1Authenticator;
var request = new RestRequest(lastPartUri, httpMethod);
request.AddJsonBody(body);
IRestResponse response = await client.Execute(request);
return response.Content;
}
IRestResponse response = await client.Execute(request);
行拋出的異常。
OAuth params絕對不是null
,也不是BaseUri
和lastPartUri
。 body
是Dictionary<string, string>
,也不爲空。
POST
和GET
具有相同參數的請求工作得很好。
貌似問題出在RestSharp
庫。我怎麼找到它?
這裏是堆棧跟蹤:
at RestSharp.Portable.Authenticators.OAuth1Authenticator.<>c.<AddOAuthData>b__84_3(Parameter p)
at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
at RestSharp.Portable.Authenticators.OAuth1Authenticator.AddOAuthData(IRestClient client, IRestRequest request, OAuthWorkflow workflow)
at RestSharp.Portable.Authenticators.OAuth1Authenticator.PreAuthenticate(IRestClient client, IRestRequest request, ICredentials credentials)
at RestSharp.Portable.RestClientBase.<ExecuteRequest>d__67.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at RestSharp.Portable.HttpClient.RestClient.<Execute>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Store.Helpers.MyBookApiConnector.<SendRequest>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Store.Services.DataService.<UpdateReview>d__80.MoveNext()
從stacktrace中,它看起來像是在'OAuthAutheticator'中發生空引用異常。提供給Authenticator的任何值的值是否爲null? –
我不太瞭解C#,但不是OP在'var 01Auth ...'代碼塊後面缺少一個分號? – DrSatan1
@LarsKristensen值不爲空。 我已更新問題。 –