2014-04-24 4 views
0

아래 코드에서 404 오류가 발생합니다. 나는 문자열의 쿼리 부분은 비주얼 C# 익스프레스 2010을 실행 해요 :Google 검색 API의 오류 404

q%3dAction%2bMotivation%2c%2bInc.%2bSouth%2bSan%2bFrancisco%2b%26alt%3djson%26start%3d0%26num%3d10"

string searchString =  
    "https://www.googleapis.com/customsearch/v1%3fkey%3d{APIkey}%26cx%3d{cxkey}%26q%3dAction%2bMotivation%2c%2bInc.%2bSouth%2bSan%2bFrancisco%2b%26alt%3djson%26start%3d0%26num%3d10"; 
WebRequest myRequest = WebRequest.Create(searchString); 
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); 
+0

왜 '&'와'='부분을 이스케이프 처리합니까? 그리고 '?'가없는 이유는 무엇입니까? 'https://www.googleapis.com/customsearch/v1?key='와 같은 것을 기대할 수 있습니다. .. & cx = ... & q = Action % 2bMotivation % 2c' 등 ('...'이 실제 열쇠로 채워지는 곳) –

답변

0

당신은 너무 많은 탈출하고 있습니다. 키/값 쌍 구분 기호가 아닌 쿼리 값을 이스케이프해야합니다. 그래서 URL은 뭔가를해야한다 :

string url = string.Format(
    "https://www.googleapis.com/customsearch/v1?key={0}&cx={1}&q={2}", 
    HttpUtility.UrlEncode(apiKey), 
    HttpUtility.UrlEncode(cxKey), 
    HttpUtility.UrlEncode(query)); 

(query원래 쿼리, 예를 들어, "액션 동기 부여 사"(나는 당신이 실제로 사용하고있는 이스케이프 시퀀스가 ​​무엇을 나타내는 지 확인하지 않은)입니다.

+0

고마워요, Jon, 그게 문제였습니다. –