2010-07-26 3 views
3

기본적으로 사용자가 브라우저에 실제로 표시하지 않고 장면 뒤에 생성 할 url을 실행하고 싶습니다 ... HTTPWebRequest 또는 curl과 비슷한 것을 사용할 수 있다고 생각합니까? ...하지만 실제로 필요합니다. 기본적으로 생성 된 URL을 방문/실행 하시겠습니까? 내가 어떻게 할 수 있니? 내가 사용하고브라우저에서 URL을 표시하지 않고 뒤에서 실행하는 방법은 무엇입니까?

+0

서버 측 또는 클라이언트 측에서 요청을 실행 하시겠습니까? –

+0

서버 측에서 수행하려고합니다 .. – Vishal

답변

6

사용 WebRequest 클래스와 그 친구들에게 게시 할 수 있습니다.

기타보다 현대적인 옵션은 경우에 따라 더 쉽게 사용할 수있는 WebClient 클래스와 요청 및 응답을 매우 세부적으로 제어 할 수있는 HttpClient 클래스입니다.

private void OnPostInfoClick(object sender, System.EventArgs e) 
{ 
    string strId = UserId_TextBox.Text; 
    string strName = Name_TextBox.Text; 

    ASCIIEncoding encoding=new ASCIIEncoding(); 
    string postData="userid="+strId; 
    postData += ("&username="+strName); 
    byte[] data = encoding.GetBytes(postData); 

    // Prepare web request... 
    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://localhost/MyIdentity/Default.aspx"); 
    myRequest.Method = "POST"; 
    myRequest.ContentType="application/x-www-form-urlencoded"; 
    myRequest.ContentLength = data.Length; 
    Stream newStream=myRequest.GetRequestStream(); 

    // Send the data. 
    newStream.Write(data,0,data.Length); 
    newStream.Close(); 
} 
1

하나 개의 방법 : 숨겨진 iframe을

+0

자신의 서버가 인터넷에 게시 할 수 없거나 방화벽을 사용하고있는 경우입니다. 이렇게하면 고객의 브라우저를 활용하여 해당 행위를 수행 할 수 있습니다. – ggonsalv

1

좋은 예는 http://www.netomatix.com/httppostdata.aspx

내가 복사하고 URL을 탐색하는 데 사용되는 방법의 예를 붙여 여기가 발견된다?

Dim response = CType(request.GetResponse(), HttpWebResponse) 
:

Dim request = WebRequest.Create(strUrl) 
request.Method = "POST" 
request.ContentType = "text/xml" 'change to whatever you need 

얻을 예를

Using sw As New StreamWriter(request.GetRequestStream()) 
    sw.WriteLine(HtmlOrXml) 
End Using 

를 들어, 당신이 필요로하는 웹 서비스에이를 보내는 경우 요청의 몸을 만들기 위해 선택적으로 반응을 다음과 같은 부분을 사용하여

그런 다음 StreamReader를 사용하여 응답을 읽을 수 있습니다. 위에서 사용 된 클래스에 대한 자세한 내용은 MSDN에서 찾을 수 있습니다.

+1

아시다시피 WebClient (http://msdn.microsoft.com/en-us/library/system.net.webclient(VS.80).aspx)는 POST 데이터를 보내는 훨씬 좋은 방법입니다. –

+0

이것은 URL로만 데이터를 전송하기위한 것입니다. 데이터를 보내지 않거나 POST 대신 GET을 사용하고 쿼리 문자열을 사용하여 데이터를 보내면이 줄 수를 생략 할 수 있습니다. 결과를 읽으려면 쓰기와 닫기 사이에 줄을 추가해야합니다. '방문'하기 만하면 더 간단하게 할 수 있습니다. –

+0

@Matti 예 WebClient를 사용하는 것이 더 쉬워 보입니다. 어쨌든 고양이를 다듬는 많은 방법이 있습니다. @kinjal 분명히 단순화 될 수 있으며, 빠른 예를 의미합니다. 나는 샘플 코드를보기 위해 링크를 방문하지 않아도되는 것을 막기 위해 netomatix.com에서 복사하여 붙여 넣었다 고 했으므로 '단순화'하지 않았습니다. – 7wp

1

난 당신이 이런 식으로 뭔가를 찾고 있습니다 추측하고있다 :

관련 문제