[英]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.