私は Windows Phone の開発者です。非同期呼び出しを使い始めたばかりです。これは、メタデータを取得するための私のコードです。それについてのいくつかのポイント:
- 別のメソッドのコールバック内で getmetadata() を呼び出していました
- 私は5つの値を持つことを期待
cskeys
しています - 私はjsessionidを取得していることを確認しました
- セッションクッキーを取得していることを確認しました
次の 2 つの機能がありGetMetaData
ますGetFolder_MetadataCallback
。
private void GetMetadata()
{
try
{
foreach (string folderpath in CSKeys)
{
if (!string.IsNullOrEmpty(folderpath))
{
HttpWebRequest FolderMetadataRequest = (HttpWebRequest)WebRequest.Create(new Uri(URL + folderpath));
FolderMetadataRequest.Method = DisplayMessage.HeadMethod;
FolderMetadataRequest.Headers[DisplayMessage.Header_Authorization] = Authentication_Parameters[DisplayMessage.Username] + DisplayMessage.Colon +
Authentication_Parameters[DisplayMessage.JSessionID];
FolderMetadataRequest.Headers[DisplayMessage.Header_Cookie] = Authentication_Parameters[DisplayMessage.SessionCookie];
FolderMetadataRequest.BeginGetResponse(new AsyncCallback(GetFolder_MetadataCallback), FolderMetadataRequest);
}
}
}
catch (Exception ex)
{
}
}
private void GetFolder_MetadataCallback(IAsyncResult asynchronousResult)
{
try
{
HttpWebRequest FolderReq = (HttpWebRequest)asynchronousResult.AsyncState;
HttpWebResponse FolderResponse = (HttpWebResponse)FolderReq.EndGetResponse(asynchronousResult);
if (FolderResponse.StatusCode == HttpStatusCode.OK)
{
System.Net.WebHeaderCollection folderMedataCollection = FolderResponse.Headers;
Dictionary<string, string> FolderMetadata_Header = new Dictionary<string, string>();
FolderMetadata_Header.Add(DisplayMessage.UniqueID_Key, folderMedataCollection[DisplayMessage.UniqueID_Value]);
FolderMetadata_Header.Add(DisplayMessage.Actual_Name_Key, folderMedataCollection[DisplayMessage.Actual_Name_Value]);
FolderMetadata_Header.Add(DisplayMessage.Display_Name_Key, folderMedataCollection[DisplayMessage.Display_Name_Value]);
FolderMetadata_KeyValues.Add(FolderPath, FolderMetadata_Header);
}
app.Storage_Parameters.Add(DisplayMessage.Metadadata_StorageKey, FolderMetadata_KeyValues);
}
catch (Exception ex)
{
}
}
1 番目、2 番目、3 番目についてはkeyvalue(CSKey)
、応答を得ています。私はすべての値を取得しており、それもに追加されていFolderMetadata_Keyvalues
ます。4 番目と 5 番目のキー (CSKey) でValue cannot be null parameter
例外が発生することがあります。なんで?