1
단일 방법으로 하나의 원격 REST service
을 차례로 두 번 호출합니다. 첫 번째 호출에서는 accessToken
의 값을 설정하고 두 번째 요청에서는이 값을 사용합니다. .ashx - 원격 서버에서 오류를 반환했습니다 : (500) 내부 서버 오류
내가 그것을 실행하고
, 그것은 다음The remote server returned an error: (500) Internal Server Error.
로 나에게 오류를주고있다 코드입니다.
<add key="GrantCodeRequest" value="https://<location>/AuthorizationServices/provider/authorize?response_type=code&state=mystateid&client_id=mVisum&redirect_uri=http://localhost:1316/RetrieveContext.aspx&scope=read"/>
<add key="AccessTokenRequest" value="https://<location>/AuthorizationServices/oauth/token?client_id=mVisum&state=mystateid&scope=read&client_secret=TESTMVISUM&response_type=token&grant_type=authorization_code&redirect_uri=http://localhost:1316/RetrieveContext.aspx"/>
<add key="RetrieveContextRequest" value="http://<location>/UserContext/rest/context/user/system/"/>
내가 유효한 값이 두 번째 호출에 초기화 accessToken
값 만 두 번째 요청을하고있는 중이 야도 예외없이 노력하고 있습니다 :
HttpWebRequest webRequest = null;
HttpWebResponse webResponse = null;
Encoding encodingObj = null;
StreamReader streamReaderObj = null;
string grantCode = string.Empty;
string resultString = string.Empty;
string accessToken = string.Empty;
private void Instantiate()
{
grantCode = HttpContext.Current.Request.QueryString["code"].ToString();
webRequest = (HttpWebRequest)WebRequest.Create(Constants.ACCESS_TOKEN_REQUEST + "&code=" + grantCode);
webRequest.Method = "GET";
webRequest.ContentType = "application/json";
webResponse = (HttpWebResponse)webRequest.GetResponse();
encodingObj = System.Text.Encoding.GetEncoding("utf-8");
streamReaderObj = new StreamReader(webResponse.GetResponseStream(), encodingObj);
resultString = streamReaderObj.ReadToEnd();
JObject parameterCollection = JObject.Parse(resultString);
accessToken = parameterCollection["access_token"].ToString();
//HttpContext.Current.Response.Write("<br/><br/>Code: <br/>" + grantCode);
//HttpContext.Current.Response.Write("<br/><br/>Access Token: <br/>" + accessToken);
webRequest = (HttpWebRequest)WebRequest.Create(Constants.RETRIEVE_CONTEXT_REQUEST + "vista-688/id/Staff01");
webRequest.Method = "GET";
webRequest.Accept = "application/json";
webRequest.ContentType = "application/json";
webRequest.Headers.Add("Authorization", "Bearer " + accessToken);
webResponse = (HttpWebResponse)webRequest.GetResponse();
encodingObj = System.Text.Encoding.GetEncoding("utf-8");
streamReaderObj = new StreamReader(webResponse.GetResponseStream(), encodingObj);
resultString = streamReaderObj.ReadToEnd();
//HttpContext.Current.Response.Write("<br/><br/>Retrieve Context: <br/>" + resultString);
}
다음은 설정 파일에서 전체 나머지 API를 URL이 있습니다. 이 메소드는 하나의 핸들러에 작성됩니다.
왜 이런 일이 일어 났는지 말해 줄 수 있습니까? REST 웹 서비스에는 아무런 문제가 없다. 또한 두 개의 별도의 웹 요청과 웹 응답 객체를 사용하지만 아무것도
WebClient client = new WebClient();
client.Headers["Content-type"] = @"application/json";
Stream data = client.OpenRead(yoururl); ;
StreamReader reader = new StreamReader(data);
string responseFromServer = reader.ReadToEnd();
위의 나를 위해 잘 작동을 사용하는
* 브라우저 *에서 500 오류가 표시되지만 예외는 무엇입니까? 'try/catch' 블록으로 예외를 잡으려고 했습니까? –
디버깅 할 때 rservice의 전체 URL은 무엇입니까? –
@ 코리 예. 단순히 같은 오류를 보여줍니다. 내부 예외가 없습니다. – Ajinkya