首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用tinyurl API获取缩短URL时出错

使用tinyurl API获取缩短URL时出错
EN

Stack Overflow用户
提问于 2019-08-02 12:26:01
回答 3查看 1.9K关注 0票数 0

我正在尝试使用TinyUrl制作一个网址速记器。问题是,我得到了以下错误:

代码语言:javascript
复制
System.Net.WebException: 'Error on the remote server: (400) Incorrect request.

我已经尝试阅读几乎整个网站,但我没有找到解决办法。

控制器代码是:

代码语言:javascript
复制
namespace Prueba.Controllers
{
    [HandleError]
    public class TinyURLAPIController : Controller
    {
        // GET: TinyURLAPI
        public ActionResult Index()
        {
            ViewData["Message"] = "Welcome to ASP.NET MVC!";
            return View("Index");
        }

        [HttpPost]
        public ActionResult MakeTinyUrl(string strURL)
        {
            var tinyUrl = WebRequest.Create("http: / tinyurl . com/api-create.php?url=" + strURL);
            var shortUrl = tinyUrl.GetResponse();

            using (var reader = new StreamReader(shortUrl.GetResponseStream())){
                ViewData["tinyUrl"] = reader.ReadToEnd();
            }
            return PartialView("Index");

        }
    }
}

这是索引代码:

代码语言:javascript
复制
<Html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <@Ajax.BeginForm("MakeTinyUrl", new AjaxOptions  { HttpMethod = "Post", UpdateTargetId = "tinyUrl" }))>
        @Html.TextBox("url")
        <input id="btnMakeUrl" type="submit" value="Make tinyUrl" onclick="Index" />



</body>
</Html>

我需要在文本框中输入长URL,然后按下按钮在标签中显示短URL

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-02 13:01:23

我不能发表评论,所以我会把它写成一个答案!

您的问题不是api请求。您的strURL可能与我的代码一样为空。

尝试在您的观点中进行以下更改:

代码语言:javascript
复制
from
@Html.TextBox("url") 

to
@Html.TextBox("strURL")

而且,在定义表单时,html也不太有效。尝试:

代码语言:javascript
复制
@using (Ajax.BeginForm("MakeTinyUrl", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "tinyUrl" }))
{
    @Html.TextBox("strURL")
    <input id="btnMakeUrl" type="submit" value="Make tinyUrl" onclick="Index" />
}
票数 2
EN

Stack Overflow用户

发布于 2019-08-02 12:50:49

在将值传递给视图之前,可能必须先对其进行UrlEncode:

https://learn.microsoft.com/en-us/dotnet/api/system.web.httputility.urlencode?view=netframework-4.8

票数 0
EN

Stack Overflow用户

发布于 2019-08-02 13:40:05

据我所知,由于受到限制,您已经更改了帖子中的api链接。

首先,我会在您喜欢的浏览器中手动调用api,使用您要尝试shorten...make的URL,确定这是可以的。

例如[redacted]tinyurl.com/api-create.php?url=http://www.yoururltest.com

接下来,使用断点运行测试,逐步遍历代码,查看错误发生的确切位置,并查看控制器在请求中接收和使用的数据。

我敢打赌你会在路上的某个地方发现问题的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57326487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档