Your code has multiple issues. I suggest you read up on screen-scraping and gain a general understanding on how http requests/responses are processed. Also, you should get fiddler(
http://fiddler2.com/home[
^]), this is a tool that lets you view the communication between the web browser and the web server. Once you know what's being communicated you can start to mimic the process in code.
The page you are calling is actually redirecting to another page and passing a querystring for the search information. So, you don't actually have to do a POST. Instead you can make a GET call and pass your data in the querystring. It's usually better to follow the steps a real user would make when attempting to screen-scrap but sometimes you just need results.
My code below has simplified the process and is not the best way to go about this but it will get you the results you want.
string searchText = "steven king";
string url = string.Format("http://www.abebooks.com/servlet/SearchResults?an={0}&sortby={1}",searchText,2);
CookieContainer cookies = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = null;
request.Method = "GET";
request.CookieContainer = cookies;
response = (HttpWebResponse)request.GetResponse();
request = null;
string responseData = new StreamReader(response.GetResponseStream()).ReadToEnd();
response.Close();
response = null;
Response.Write(responseData);