Có thể chuyển các tham số với yêu cầu nhận được yêu cầu HTTP
không? Nếu vậy, làm thế nào tôi nên làm điều đó? Tôi đã tìm thấy HTTP
requst bài đăng (link). Trong ví dụ đó, chuỗi postData
được gửi tới máy chủ web. Tôi muốn làm tương tự bằng cách sử dụng nhận được thay thế. Google đã tìm thấy ví dụ này trên HTTP
nhận được here. Tuy nhiên không có tham số nào được gửi tới máy chủ web.Cách đặt yêu cầu HTTP có tham số
Trả lời
Trong yêu cầu GET, bạn chuyển các tham số như một phần của chuỗi truy vấn.
string url = "http://somesite.com?var=12345";
Đầu tiên WebClient
dễ sử dụng hơn; Đối số GET được chỉ định trên chuỗi truy vấn - mẹo duy nhất là nhớ để thoát khỏi bất kỳ giá trị nào:
string address = string.Format(
"http://foobar/somepage?arg1={0}&arg2={1}",
Uri.EscapeDataString("escape me"),
Uri.EscapeDataString("& me !!"));
string text;
using (WebClient client = new WebClient())
{
text = client.DownloadString(address);
}
Cách ưa thích của tôi là như vậy. Nó xử lý việc thoát và phân tích cú pháp cho bạn.
WebClient webClient = new WebClient();
webClient.QueryString.Add("param1", "value1");
webClient.QueryString.Add("param2", "value2");
string result = webClient.DownloadString("http://theurl.com");
Cảm ơn, câu trả lời tuyệt vời. –
Đối tượng WebRequest có vẻ như quá nhiều với tôi. Tôi thích sử dụng điều khiển WebClient.
Để sử dụng chức năng này, bạn chỉ cần tạo hai NameValueCollections giữ thông số của bạn và yêu cầu tiêu đề.
Hãy xem xét các chức năng sau:
private static string DoGET(string URL,NameValueCollection QueryStringParameters = null, NameValueCollection RequestHeaders = null)
{
string ResponseText = null;
using (WebClient client = new WebClient())
{
try
{
if (RequestHeaders != null)
{
if (RequestHeaders.Count > 0)
{
foreach (string header in RequestHeaders.AllKeys)
client.Headers.Add(header, RequestHeaders[header]);
}
}
if (QueryStringParameters != null)
{
if (QueryStringParameters.Count > 0)
{
foreach (string parm in QueryStringParameters.AllKeys)
client.QueryString.Add(parm, QueryStringParameters[parm]);
}
}
byte[] ResponseBytes = client.DownloadData(URL);
ResponseText = Encoding.UTF8.GetString(ResponseBytes);
}
catch (WebException exception)
{
if (exception.Response != null)
{
var responseStream = exception.Response.GetResponseStream();
if (responseStream != null)
{
using (var reader = new StreamReader(responseStream))
{
Response.Write(reader.ReadToEnd());
}
}
}
}
}
return ResponseText;
}
Thêm thông số chuỗi truy vấn của bạn (nếu bắt buộc) theo một NameValueCollection như vậy.
NameValueCollection QueryStringParameters = new NameValueCollection();
QueryStringParameters.Add("id", "123");
QueryStringParameters.Add("category", "A");
Thêm tiêu đề http của bạn (nếu được yêu cầu) làm NameValueCollection như vậy.
NameValueCollection RequestHttpHeaders = new NameValueCollection();
RequestHttpHeaders.Add("Authorization", "Basic bGF3c2912XBANzg5ITppc2ltCzEF");
Bạn cũng có thể chuyển giá trị trực tiếp qua URL.
Nếu bạn muốn gọi phương thức public static void calling(string name){....}
thì bạn nên gọi bằng HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create("http://localhost:****/Report/calling?name=Priya); webrequest.Method = "GET"; webrequest.ContentType = "application/text";
Chỉ cần chắc chắn rằng bạn đang sử dụng ?Object = value
trong URL
- 1. Đặt UserAgent theo yêu cầu http
- 2. RestTemplate Yêu cầu GET với các tham số yêu cầu
- 3. yêu cầu http 'get' của node.js http 'get' với tham số chuỗi truy vấn
- 4. Tham số yêu cầu MPI_Isend
- 5. Cách viết Yêu cầu HTTP
- 6. Yêu cầu DELETE HTTP
- 7. URL yêu cầu HTTP có phải là một phần của tiêu đề yêu cầu HTTP không?
- 8. Cách gửi tham số đến Iframe với yêu cầu HTTP POST
- 9. Http Yêu cầu Vòng đời
- 10. Tải trọng yêu cầu HTTP
- 11. Yêu cầu tham số Mất dấu cộng
- 12. Vượt qua các tham số trong yêu cầu đăng bài HTTP của VBA
- 13. Phương pháp thử yêu cầu http yêu cầu
- 14. Yêu cầu FluentValidation gọi hàm có nhiều tham số
- 15. Cách biết Yêu cầu HTTP là BOT
- 16. Quy ước đặt tên yêu cầu HTTP API Web
- 17. WebResource.axd yêu cầu không có tham số - Đây là một yêu cầu không hợp lệ webresource
- 18. Làm thế nào để cho các tham số tạo mẫu yêu cầu jMeter http tạo ra?
- 19. Làm cách nào để tạo tham số WebMethod yêu cầu
- 20. Yêu cầu HTTP trong Ubuntu
- 21. Nghe các yêu cầu HTTP
- 22. Đặt loại yêu cầu HTTP là <iframe>
- 23. Yêu cầu HTTP SOAP PHP
- 24. Symfony2: gửi yêu cầu HTTP
- 25. JAVA: http yêu cầu đăng
- 26. Plugin Firefox chặn một số yêu cầu HTTP nhất định
- 27. Thay đổi HTTP bài yêu cầu HTTPS bài yêu cầu:
- 28. yêu cầu http với powershell
- 29. Gửi http xóa yêu cầu
- 30. Volley: http yêu cầu chậm
Nếu bạn nhập url đầy đủ bao gồm các thông số trong adresse thanh của iexplore, sau đó tôi nhận được phản ứng tương tự như là làm cho một yêu cầu http nhận được từ C# – CruelIO
Đó phải là trường hợp. – EndangeredMassa
Đây không phải là mã C# ... – psyklopz