对我的操作方式有些困扰,并希望以更好的方式获得一些反馈。
这是我写的一些要发布到网站上的代码,我还将显示获取请求。
因此,假设您在构造HttpClient,CookieContainer和ClientHandler时无需查看,则代码如下:
List<KeyValuePair<string, string>> ListLogin = new List<KeyValuePair<string, string>>(); //key value pair is the input name and then the input value to be used
ListLogin = AddToList("userid", "someUser", ListLogin);
ListLogin = AddToList("passwd", "somePassword", ListLogin);
ListLogin = AddToList("domain", "whoCares", ListLogin);
ListLogin = AddToList("destinationURL", "/", ListLogin);
IEnumerable<KeyValuePair<string, string>> QueryLogin = GetEnumerable(ListLogin);
PostRequest("URL.com", QueryLogin);
因此,以上内容正在为服务器期望的值构建键值对。然后使用这些方法构造请求。
我还将显示AddToList方法:
public static List<KeyValuePair<string, string>> AddToList(string
strInput1, string strInput2, List<KeyValuePair<string, string>>
ListInput)
{
List<KeyValuePair<string, string>> NewList = ListInput;
NewList.Add(new KeyValuePair<string, string>(strInput1, strInput2));
return NewList;
}
这也是getEnumerable方法:
public static IEnumerable<KeyValuePair<string, string>> GetEnumerable(List<KeyValuePair<string, string>> ListInput)
{
IEnumerable<KeyValuePair<string, string>> queriesNew = ListInput;
return queriesNew;
}
最后发布并获取请求的方法:
async static void PostRequest(string strUrl,
IEnumerable<KeyValuePair<string, string>> queries)
{
Uri uri = new Uri(strUrl);
cookieContainer.GetCookies(uri);
HttpContent q = new FormUrlEncodedContent(queries);
HttpResponseMessage response = await client.PostAsync(strUrl, q);
HttpContent content = response.Content;
string myContent = await content.ReadAsStringAsync();
// Console.WriteLine(myContent);
// Console.WriteLine(response);
IEnumerable<Cookie> responseCookies =
response.Dispose();
}
async static Task<String> GetRequest(string strUrl)
{
HttpResponseMessage response = await client.GetAsync(strUrl);
HttpContent content = response.Content; //content of the response
string myContent = await content.ReadAsStringAsync();
Console.WriteLine(myContent);
response.Dispose(); //dispose of the response
return myContent;
}
只是在我的方法上寻找一些建设性的批评,当我输入新的get和post请求时,它会感觉是重复的,而且如果感觉到重复,通常会给我留下印象,然后可能会有更好的方法。让这个问题分为两部分,即PostRequest和GetRequest方法。我认为最好将其放入自己的类中,以便在其他解决方案/项目中可重用?是/否?
在此先谢谢你。