【问题标题】:How to connect to external URL from mvc application [closed]如何从 mvc 应用程序连接到外部 URL [关闭]
【发布时间】:2016-03-11 10:43:20
【问题描述】:

如何从 MVC 应用程序调用外部 URL。

我有一个 Intranet 应用程序,我可以在其中使用搜索工具通过提供学生姓名来查找详细信息。搜索返回一个包含学生详细信息的 html 页面。

我的 MVC Web 应用程序有一个页面,我可以在其中提供学生姓名。我的要求是,如果我提供学生姓名,则应使用外部 URL(我在上面指定)进行搜索,并希望使用来自外部 URL 的详细信息填充我的 MVC 视图。

例如,如果我在我的 mvc 应用程序中更改文本框时将名称命名为 swathi,它应该连接到外部 URL(搜索 URL),其余字段需要从外部 URL 的结果中填充(结果在html 格式)。假设我的外部 URL 为我的名字“swathi”返回出生日期、地址、电子邮件 ID,所以我的 mvc 应用程序搜索“出生日期”并找到相应的值并应该填充我的 mvc razor 视图。

Edit: Tried as below
$("#Contactname").change(function () {
       $.ajax({
            url: 'http://XXXXX.intranet.group/Pages/PeopleResults.aspx?k=swath&exact=true',  
            type: 'GET',
            crossDomain: true,
            contentType: "text/html; charset=utf-8",
            success: function (data, textStatus, xhr) {
               alert(1)
            },
            error: function (jqXHR, exception) {
                if (jqXHR.status === 0) {
                    alert('1Not connect.\n Verify Network.');
                }
            }
        });
    });

这里我得到 jqXHR.status = 0 错误。

【问题讨论】:

  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。请参阅 How to Ask 页面以获得澄清此问题的帮助
  • 最好使用 Web 服务向您的系统提供数据,而不是解析 HTML。 D0 您有权从外部 URL 获取信息。如果是这样,那么也许您可以与他们讨论访问数据的更好方法?
  • @Guru :请耐心等待,我已经更新了我的问题。这是我的堆栈溢出中的第一个问题,必须学习很多才能提出问题
  • @james :我可以访问该 URL。但问题是我不知道该应用程序的所有者。所以唯一的办法就是遍历html
  • 很抱歉,但这些解决方案最终会得到一个巨大的答案,这不是 Stack Overflow 的唯一目的。那里有很多答案..您可以尝试使用ajaxWeb API等搜索开始..基本上您需要先尝试。在您尝试并遇到问题的任何代码点中,我们都可以轻松指导您..

标签: jquery asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

在控制器中编写此方法,调试并检查结果变量是否有数据..

 public string RequestforInformation(string Name)
        {

            string URL = "Your External URL HERE";
            HttpWebRequest req = WebRequest.Create(URL)
                       as HttpWebRequest;
            string result = null;
            using (HttpWebResponse resp = req.GetResponse()
                                          as HttpWebResponse)
            {
                StreamReader reader =
                    new StreamReader(resp.GetResponseStream());
                result = reader.ReadToEnd();
            }
            return result;
        }

您应该使用 AJAX 调用并从那里获取详细信息,然后用这些详细信息填写页面的其余部分..

$("button").click(function(){// use onkeypress function(textbox)if button is not clicked
    $.ajax({url: "@Url.Action('RequestforInformation','Contoller')", success: function(result){
        $("#div1").html(result);
    }});
});

【讨论】:

  • 可以提供样品吗
  • 你的意思是将 URL 的内容保存到文本文件中吗?
  • no ,,, 那只是你获取数据的目的地 .. 在你的情况下 url 将是 @Url.Action("Action","Contorller",new{id=1})
  • $("#Contactname").change(function () { alert(12); $.ajax({ url: "colleaguedirectory.intranet.group/Pages/…: 'GET', 成功: function (result) { alert(1); $("#div1").html(result); } }); });
  • 我试过如上。但没有得到任何回应,
【解决方案2】:

在您的视图中: 1)创建一个div 2)

$("button").click(function(){// 如果按钮没有被点击,使用onkeypress函数(textbox) $.ajax({url: "URL", 成功: function(result){ $("#div1").html(结果); }}); });

【讨论】:

  • 试过了但没有反应
猜你喜欢
  • 2020-03-26
  • 2020-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 2019-03-01
  • 1970-01-01
  • 2019-09-12
相关资源
最近更新 更多