0
wp7에 로그인하여 위키 백과에 로그인하고 페이지를 번역하는 데 도움이되는 앱을 만들려고합니다. mediawiki API를 통해 로그인 할 수 없기 때문에 저는 처음부터 막혔습니다. 코드의 관련 부분은 다음과 같이 진행됩니다wp7의 api에 의해 mediawiki에 로그인
data.Append("action=login&lgname" + HttpUtility.UrlEncode(textBox1.Text));
data.Append("&lgpassword=" + HttpUtility.UrlEncode(passwordBox1.Password));
request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback),request);
request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
public void GetRequestStreamCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
Stream postStream = request.EndGetRequestStream(asynchronousResult);
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());
postStream.Write(byteData, 0, data.Length);
postStream.Close();
}
private static void GetResponseCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
Stream streamResponse = response.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
string responseString = streamRead.ReadToEnd();
streamResponse.Close();
streamRead.Close();
response.Close();
}
문제는 다음과 같습니다
GetRequestStreamCallback에 내가 주요 기능에서 데이터 문자열을 전달할 수 없습니다. 어떻게해야합니까?
GetResponseCallback 함수에서 나중에 응답 문자열을 반환하여 나중에 출력 할 수 있습니까?
내 코드에 의해 반환되는 스트림에 작성을 완료 할 때까지 당신이 일반적으로
BeginGetResponse
를 호출하지 않는 것을 확인할 수 있습니다 시작 메소드에 대한 msdn 설명서에 제공된 이름으로 변경하십시오. get 메소드의 begin 메소드를 변경할 수 있습니까? Silverlight는 인식하지 못합니다. –신경 쓰지 마세요. 나는 다른 방법으로 이것을 할 것이다. api.php? action = query & format = xml & meta = userinfo를 확인하고 id = "0"인 경우 로그인 페이지가로드 된 상태에서 웹 브라우저를 엽니 다. id가 다른 것이면 앞으로 이동하십시오. 나중에 어쨌든 시작 메소드를 배워야 할 것입니다. –