簡體   English   中英

無法運行 URL Shortener,當我運行時出現錯誤

[英]Unable to run URL Shortener, when I run I am getting error

我是 MVC 的新手。 我在 ASP.NET MVC 中創建了 URL 縮短服務,當我嘗試運行 URL 縮短服務時,我運行時遇到錯誤。 我正在使用谷歌 URL 縮短器 API。 我在哪里缺少任何步驟?

我遇到問題:

var resp = req.GetResponse();

代碼:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.IO;
    using System.Net;
    using System.Text;
    using System.Web.Script.Serialization;
    using UrlShortner.Models;

    namespace UrlShortner.Controllers
    {
        public class HomeController : Controller
        {

            // Enter your Google URL Shortener API key here
            const string API_KEY = "AIzaSyBYOT4rQDtTasdadFJmz3yzmfmnwYQqHsd";
            public ActionResult Index()
            {
                return View();
            }

            [HttpPost]
            public ActionResult Index(FormCollection form)
            {
                string longUrl = Convert.ToString(form["longUrl"]);
                var shortenedResponse = Shorten(longUrl);

                ViewBag.ShortenedUrl = shortenedResponse.id;
                return View();
            }

            public static ShortenLongUrlResponse Shorten(string longUrl)
            {
                if (string.IsNullOrWhiteSpace(longUrl))
                    throw new ArgumentException("You must provide a value for longUrl");

                var req = WebRequest.Create(GetUrl());
                req.Method = "POST";
                req.ContentType = "application/json";

                var postBody = string.Format(@"{{""longUrl"": ""{0}""}}", longUrl);
                var postData = Encoding.ASCII.GetBytes(postBody);

                req.ContentLength = postData.Length;
                var reqStream = req.GetRequestStream();
                reqStream.Write(postData, 0, postData.Length);
                reqStream.Close();


                var resp = req.GetResponse();
                using (var respReader = new StreamReader(resp.GetResponseStream()))
                {
                    var responseBody = respReader.ReadToEnd();

                    var deserializer = new JavaScriptSerializer();
                    return deserializer.Deserialize<ShortenLongUrlResponse>(responseBody);
                }
            }

            protected static string GetUrl()
            {
                const string API_URL = "https://www.googleapis.com/urlshortener/v1/url";

                if (string.IsNullOrWhiteSpace(API_KEY))
                    return API_URL;
                else
                    return string.Concat(API_URL, "?key=", API_KEY);
            }

        }
    }

根據谷歌截至 2019 年 3 月 30 日,goo.gl URL 縮短器已關閉。 請參閱此博客文章以獲取替代方案。

你必須從谷歌閱讀這個博客。 https://developers.googleblog.com/2018/03/transitioning-google-url-shortener.html

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM