应用程序在 XMLString = 客户端挂起.DownloadString(rootURL + basePolicyN



我的目录中有两张图片:

IMG_MGR_VAH007157100_d68807cb-8BD5-4CA8-861D-D878FA7E20B9.tiffIMG_MGR_VAH007157200_121e8ae3-8E88-4775-BE1E-A833E1c1EB51.tiff

我有一个按钮:

private void btnUpload_Click(object sender, EventArgs e)
        {
            //check if all files in this folder are .tiff.
            finalImages = Directory.GetFiles(AppVars.FinalPolicyImagesDirectory);
            if (finalImages.Length == 0)
            {
                MessageBox.Show("There are no TIFF files to be uploaded. Please generate files first.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                Web web = new Web();
                XML xml = new XML();
                //The first item in this foreach works fine. The second item gets hung.  
                foreach (string tiffFile in finalImages)
                {
                    PolicyNumber = Path.GetFileName(tiffFile).Substring(8, 12);
                    basePolicyNumber = PolicyNumber.Remove(PolicyNumber.Length - 2);
                    basePolicyNumber = basePolicyNumber + "00";
                    finalPolicyName = Path.GetFileName(tiffFile);
                //THIS IS WHERE I RUN INTO PROBLEMS......BUT ONLY WITH THE SECOND FILE IN THE FOREACH CLAUSE.
                    PolicyUUID = web.GetPolicyUUID(AppVars.pxCentralRootURL, basePolicyNumber);
                    if (!string.IsNullOrEmpty(PolicyUUID) == true)
                    {
                        ixLibraryPolicyBucketURL = AppVars.ixLibraryRootURL + "policy_" + PolicyUUID + "/objects/";
                        try
                        {
                            httpResponse = web.UploadFileToixLibrary(ixLibraryPolicyBucketURL, tiffFile);
                            xml.GeneratePayLoad(ixLibraryPolicyBucketURL + finalPolicyName + ".tiff", finalPolicyName);
                            //web.pxCentralPOST(ixLibraryPolicyBucketURL + "/IMG_MGR_37722779-7487-4d47-a669-ac33a61dceb2.tiff", AppVars.pxCentralRootURL + PolicyUUID, AppVars.pxCentralXMLPayloadFilePath);
                            MessageBox.Show(httpResponse);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    }
                }
            }    
        } 

"foreach"子句中的第二项在此调用中挂起:

PolicyUUID = web。GetPolicyUUID(AppVars.pxCentralRootURL, basePolicyNumber);

下面是此类/方法的代码:

public string GetPolicyUUID(string rootURL, string basePolicyNumber)
        {
            string PolicyUUID = "";
            using (WebClient client = new WebClient())
            {
                NetworkCredential credentials = new NetworkCredential();
                credentials.UserName = AppVars.Username;
                credentials.Password = AppVars.Password;
                client.Credentials = credentials;
                if (DoesPageExist(rootURL + basePolicyNumber) == true)
                {
                    try
                    {
                        XmlDocument doc = new XmlDocument();
                        string XMLString = "";
                        //the app stops working here. it just hangs, no errors or anything. IT WORKS THE FIRST TIME AROUND.
                        XMLString = client.DownloadString(rootURL + basePolicyNumber);
                        doc.LoadXml(XMLString);
                        var node = doc.DocumentElement.SelectSingleNode("//Identifier[@name='InsightPolicyId']");
                        if (node != null && node.Attributes["value"] != null)
                        {
                            var val = node.Attributes["value"].Value;
                            PolicyUUID = val.ToString();
                        }
                    }
                    catch (WebException ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
                else
                {
                    MessageBox.Show("Page does not exist. This means that the policy number of the picture you're trying to upload does not exist in pxCentral. Please verify its name. The policy number in questoin is " + basePolicyNumber + ".", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            return PolicyUUID;
        }

我不确定为什么在为第二张图片运行这些代码时,应用程序只是挂起。谁能帮我一把?

使用Fiddler或类似方法检查网络上发生的事情。也许链接没有正确构建?

关于下载字符串方法:

此方法在下载资源时阻止。若要下载资源并在等待服务器响应时继续执行,请使用 DownloadStringAsync 方法之一。

相关内容

  • 没有找到相关文章

最新更新