2013-09-07 2 views
1

내 코드는 100 % 작동하지만 yelp.com에서 양식을 채울 때 403 오류가 발생합니다.VB.net HttpWebRequest 403 오류

Dim cweb As String = "http://www.yelp.com/biz_share?bizid=T6XCD1_eLEk3LaSp8C7E1g&return_url=%2Fbiz%2Fmr-c-los-angeles-2" 
    Dim POST As String = "csrftok=6cc5dea3ff8bf8f404f1e7a4951342cb2f132a17cb625a3988c50027d358285d&context=pyZQEaHS1YbhP3EEsTKGww&action_submit=1&[email protected]&emails=&emails=&unauth_name=Test+Name&unauth_email=testemail%40email.com&note=How%27s+it+going%3F" 
    Dim request As HttpWebRequest 
    Dim response As HttpWebResponse 
    Dim tempCookies As New CookieContainer 

    request = CType(WebRequest.Create(cweb), HttpWebRequest) 
    request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0" 
    request.AllowAutoRedirect = True 
    request.ContentType = "application/x-www-form-urlencoded" 
    request.ContentLength = POST.Length 
    request.Method = "POST" 
    request.KeepAlive = True 
    request.CookieContainer = tempCookies 


    Dim requestStream As Stream = request.GetRequestStream() 
    Dim postBytes As Byte() = Encoding.ASCII.GetBytes(POST) 
    requestStream.Write(postBytes, 0, postBytes.Length) 
    requestStream.Close() 

    response = CType(request.GetResponse(), HttpWebResponse) 
    tempCookies.Add(response.Cookies) 
    Dim postreader As New StreamReader(response.GetResponseStream()) 
    Dim thepage As String = postreader.ReadToEnd 
    response.Close() 

내가 내놓고 오전 웹 양식은 이것이다 : 내가 그들을 업을 작성하고 보낼 수 있어요 다른 웹 양식에

http://www.yelp.com/biz_share?bizid=T6XCD1_eLEk3LaSp8C7E1g&return_url=%2Fbiz%2Fmr-c-los-angeles-2 

이 yelp.com 것을 의미합니까, 여기 내 코드는 웹 요청서를 보내지 않겠습니까? 나는 지금 정말로 혼란 스럽다. 어떤 도움이라도 기꺼이 받아 들여질 것입니다.

+0

403은 금지 된 오류이므로 Yelp가 인증되지 않은 주소에서 게시 요청을 차단하고 있다고 가정합니다. – Tim

+0

블록을 건너 뛸 수있는 방법이 있습니까? –

+0

yelp에서 서버로 인증 할 수있는 경우가 아니면. 적어도 합법적 인 방법은 없습니다. – Tim

답변

0

인증 데이터가 잘못되었거나 csrftok이 세션에 유효하지 않기 때문에 csrftok가 각 사용자/세션마다 변경됩니다. 올바른 토큰을 얻으려면이 (또는 로그인 페이지 또는 유사한) 전에 페이지로 이동해야합니다.