我使用了网络API
并显示上面的参数
方法输入: 图像LON = 100.75&安培; LAT = 1.5&安培;日期= 2014年2月1日和安培; cloud_score =真&安培; API_KEY = DEMO_KEY
预期产出: 方法名称:图像 参数:lon,lat,date,cloud_score,api_key 值:100.75,1.5,2014-02-01,True,api_key
方法输入: 浏览LON = 100.75&安培; LAT = 1.5&安培;日期= 2014年2月1日
预期产出: 方法名称:浏览 参数:lon,lat,date 值:100.75,1.5,2014-02-01
方法输入: ?LON = 100.75&安培; LAT = 1.5&安培;日期= 2014年2月1日 预期产出:
错误:格式错误的网址
方法输入: 浏览LON = 100.75&安培; LAT = 1.5&安培;日期
预期产出: 错误:格式错误的网址
方法输入: 浏览?
预期产出: 错误:格式错误的网址
方法输入: 浏览
预期产出: 方法名称:浏览
我需要在问号
之前的任何单词中拆分API到目前为止,这是我的代码
if (S == null || S=="")
{
lbOutput.Text = "Please dont leave Fields Empty";
}
else
{
if (S.Contains("?") || S.Contains("&"))
{
lbOutput.Text = "Output";
string url = txtInput.Text;
string querystring = url.Substring(url.IndexOf("?"));
System.Collections.Specialized.NameValueCollection parameters =
System.Web.HttpUtility.ParseQueryString(querystring);
//lbOutput.Text = querystring;
lbLonRes.Text = System.Web.HttpUtility.ParseQueryString(querystring).Get("lon");
lbLatRes.Text = System.Web.HttpUtility.ParseQueryString(querystring).Get("lat");
lbDateRes.Text = System.Web.HttpUtility.ParseQueryString(querystring).Get("date");
lbCloudRes.Text = System.Web.HttpUtility.ParseQueryString(querystring).Get("cloud_score");
lbAPIRes.Text = System.Web.HttpUtility.ParseQueryString(querystring).Get("api_key");
}
if(S.Contains(" "))
{
lbOutput.Text = "Error: malformed URL";
lbLonRes.Text = "";
lbLatRes.Text = "";
lbDateRes.Text = "";
lbCloudRes.Text = "";
lbAPIRes.Text = "";
}
}
答案 0 :(得分:0)
您可以使用Segments
类的Uri
属性来获取该方法,因为它将是最后一段。
您需要引用System.Net.HttpFormatting
才能使用此代码,它会消除您对System.Web
的依赖
using System;
using System.Net.Http;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
string url = "https://api.nasa.gov/planetary/earth/imagery?lon=100.75&lat=1.5&date=2014-02-01&cloud_score=True&api_key=DEMO_KEY";
Uri theUri = new Uri(url);
string method = theUri.Segments[theUri.Segments.Length - 1];
Console.WriteLine("Method: {method}");
var qa = theUri.ParseQueryString();
foreach (string item in qa.AllKeys)
{
Console.WriteLine($"key: {item}, value: {qa[item]}");
}
Console.ReadKey();
}
}
}