검색 결과까지는 잘 뜨는데, 반환된 XML 속의 링크를 클릭했을 때 나오는 URL이 틀려 있다.
ListView에 XML을 변환해 표시하는 코드. 이건 잘 동작한다.
ListViewItem.SubItems에서 [0]=제목, [1]=설명, [2]=URL이다.
const string key = "x97y9zxc8v9as8fsa8f"; // 발급받은 키
int start = 1; // 시작 번호
int display = 10; // 페이지 당 보일 게시물 수
string query = this.textBox1.Text;
string target = "webkr";
var doc = new XmlDocument();
var url = string.Format(
"http://openapi.naver.com/search?key={0}&query={1}&target={2}&start={3}&display={4}",
key, query, target, start, display);
doc.Load(url);
var rss = doc.SelectSingleNode("rss");
string[] ret = new string[3];
var channel = rss.SelectSingleNode("channel");
foreach (XmlNode item in channel.SelectNodes("item"))
{
string[] result = new string[3];
result[0] = item.SelectSingleNode("title").InnerText;
result[1] = item.SelectSingleNode("description").InnerText;
result[2] = item.SelectSingleNode("link").InnerText;
this.listView1.Items.Add(new ListViewItem(result)
// 이건 기본 브라우저로 링크를 여는 코드.
// 실행은 잘 되는데 URL이 틀려 있다.
private void listView1_DoubleClick(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
foreach (ListViewItem sel in listView1.SelectedItems)
{
var x = sel.SubItems[2].Text; //정상
Process.Start(x); //여기서 리디렉션 되면서 안 된다.
}
}
}
네이버 open API 검색은 실제 주소가 아니라 그 주소로 redirection하는 링크(위 코드에서 'x')를 받아오는데, Process.Start()가 잘 돼더라도, redirection 주소가 틀렸으면 브라우저가 404 에러를 내게 된다.
어이없게도 http 뒤에 :(콜론)이 빠져 있다. 즉
http://www.naver.com 이게
http//www.naver.com으로 되는 것이다.
내가 잘못 짠 게 아니니 어찌 할 방법이 없다.
오픈 API 나온 지도 오래 됐는데 왜 이런 건지 모르겠다.
'지식인' 검색을 하면 잘 되는 걸 봐서, 이건 그냥 오타에 의한 게 분명하다.
즉 위 코드에서 검색 대상을 웹(webkr)이 아니라 지식인(kin)으로 고치면 잘 동작한다.
string target = "kin";
공식 카페 가서
물어볼랬더니 가입 후 댓글을 5개 달고, 3번 접속해야 질문을 올릴 수 있다.
접속 횟수가 모자라 못 쓰는 중...
뭐 질문해 봤자 답변 안 올라올 거 같기도 하다.
그냥 구글 API 써야지.
Subscribe to:
Post Comments (Atom)
"Gossip Girl" star Michelle Trachtenberg dies at 39
미셸 트랙튼버그 하우스에서 심장 이식 받았던 환자로 나왔는데 현실에서는 간이식을 받았었구나 가십걸이나 버피더뱀파이어슬레이어 이제 정주행해 볼까... 블로그도 다시 살려 볼까 훠훠

-
텍스트박스에서 엔터를 치면 자동으로 입력되게 하려고 keyup 이벤트 핸들러를 등록했다. 잘 동작하는 듯했는데 alert창을 닫아도 닫아도 계속 열리는 것이다. 크롬이어서 다행이지 IE였으면 무한히 열렸을 거야...스페이스바로 눌러보길 잘했...
-
MathJax è Word MS Word 2007부터는 MathML을 문서에 바로 붙여넣을 수 있다. 이 블로그의 거의 대부분의 수식은 MathJax로 작성되어 있는데, 오른쪽 버튼 클릭하고 메뉴에서 MathML 또는 TeX 형식으로 ex...
-
진짜 되는 건 아니고 흉내낼 수는 있다. 새 창을 누르면 아무 것도 안 변한 것 같지만 PowerPoint 창 제목이 바뀌어 있다: 프레젠테이션1:2에서 :2 부분이 같은 파일을 연 창 여러 개 중 2번째라는 뜻이다('프레...
No comments:
Post a Comment