검색 결과까지는 잘 뜨는데, 반환된 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)
창 핸들을 만드는 동안 오류가 발생했습니다
System.ComponentModel.Win32Exception was unhandled MyForm w = new MyForm IntPtr handle = wnd.Handle; // Exception occurs here class MyFo...
-
텍스트박스에서 엔터를 치면 자동으로 입력되게 하려고 keyup 이벤트 핸들러를 등록했다. 잘 동작하는 듯했는데 alert창을 닫아도 닫아도 계속 열리는 것이다. 크롬이어서 다행이지 IE였으면 무한히 열렸을 거야...스페이스바로 눌러보길 잘했...
-
진짜 되는 건 아니고 흉내낼 수는 있다. 새 창을 누르면 아무 것도 안 변한 것 같지만 PowerPoint 창 제목이 바뀌어 있다: 프레젠테이션1:2에서 :2 부분이 같은 파일을 연 창 여러 개 중 2번째라는 뜻이다('프레...
-
MathJax è Word MS Word 2007부터는 MathML을 문서에 바로 붙여넣을 수 있다. 이 블로그의 거의 대부분의 수식은 MathJax로 작성되어 있는데, 오른쪽 버튼 클릭하고 메뉴에서 MathML 또는 TeX 형식으로 ex...
No comments:
Post a Comment