从Xamarin访问休息服务

时间:2018-03-19 06:57:16

标签: c# xamarin xamarin.forms

我正在开发一个访问.Net WebApi服务的简单Xamarin表单客户端应用程序。我使用postman测试端点它完美地工作并返回数据,但是当我使用Xamarin应用程序获取数据时我收到错误

  

“未处理的例外情况:   System.Net.Http.HttpRequestException:发送请求“

时发生错误

我提到了用于从休息服务中获取数据的方法

private List <String> parseOutAllUrlLinksInWebPage(String webPageUrl) {
  List <String> retList = new ArrayList <String> ();
  if (webPageUrl != null && !"".equals(webPageUrl.trim())) {
    /* Get current page belongs domain. */
    String urlDomain = this.getPageBelongDomain(webPageUrl);
    /* First parse out all a tag href urls. */
    By byUrlLink = By.tagName("a");
    List <WebElement> aLinkList = driver.findElements(byUrlLink);
    if (aLinkList != null) {
      int aLinkSize = aLinkList.size();
      for (int i = 0; i <aLinkSize; i++) {
        WebElement aLink = aLinkList.get(i);
        String href = aLink.getAttribute("href");

        if (href != null && !"".equals(href.trim())) {
          /* Only return same domain page url. */
          if (href.toLowerCase().startsWith("http://" + urlDomain) || href.toLowerCase().startsWith("https://" + urlDomain)) {
            retList.add(href);
          }
        }
      }
    }
    /* Second parse out all img tag src urls. */
    By byImg = By.tagName("img");
    List <WebElement> imgList = driver.findElements(byImg);

    if (imgList != null) {
      int imgSize = imgList.size();
      for (int i = 0; i <imgSize; i++) {
        WebElement imgElement = imgList.get(i);
        String src = imgElement.getAttribute("src");

        if (src != null && !"".equals(src.trim())) {
          /* Only return same domain page url. */
          if (src.toLowerCase().startsWith("http://" + urlDomain) || src.toLowerCase().startsWith("https://" + urlDomain)) {
            retList.add(src);
          }
        }
      }
    }
  }
  System.out.println("Parse out url completed successfully.");
  return retList;
};

1 个答案:

答案 0 :(得分:2)

在仿真器或真实设备上使用“localhost”时,您正在访问仿真器/设备,而不是可能正在运行api服务的开发机器。您需要输入一个有效的URL来访问运行api的机器。

如果您尝试在模拟器或真实设备上运行邮递员,则可能会遇到相同的错误。