void AddReqHeader(string line) { if (Path == null) { //check if GET or POST bool foundHttpMethod = false; HttpMethod httpMethod = HttpMethod.Get; if (line.StartsWith("GET")) { foundHttpMethod = true; } else if (line.StartsWith("POST")) { foundHttpMethod = true; httpMethod = HttpMethod.Post; } //-------------------------------------------------------------- if (foundHttpMethod) { //parse req url string[] splitedLines = line.Split(' '); if (splitedLines.Length > 1) { string getContent = splitedLines[1]; int qpos = getContent.IndexOf('?'); if (qpos > -1) { Path = getContent.Substring(0, qpos); string[] paramsParts = getContent.Substring(qpos + 1).Split('&'); int paramLength = paramsParts.Length; var reqParams = new WebRequestParameter[paramLength]; for (int p = 0; p < paramLength; ++p) { string p_piece = paramsParts[p]; int eq_pos = p_piece.IndexOf('='); if (eq_pos > -1) { reqParams[p] = new WebRequestParameter(p_piece.Substring(0, eq_pos), p_piece.Substring(eq_pos + 1)); } else { reqParams[p] = new WebRequestParameter(p_piece, ""); } } ReqParameters = reqParams; } else { Path = getContent; } } HttpMethod = httpMethod; return; } } //-------------------------------------------------------------- //sep key-value int pos = line.IndexOf(':'); if (pos > -1) { string key = line.Substring(0, pos); string value = line.Substring(pos + 1); AddHeaderInfo(key.Trim(), value.Trim()); } else { } }
//=================== void AddReqHeader(string line) { if (Url == null) { //check if GET or POST bool foundHttpMethod = false; HttpMethod httpMethod = HttpMethod.Get; if (line.StartsWith("GET")) { foundHttpMethod = true; } else if (line.StartsWith("POST")) { foundHttpMethod = true; httpMethod = HttpMethod.Post; } //-------------------------------------------------------------- if (foundHttpMethod) { //parse req url string[] splitedLines = line.Split(' '); if (splitedLines.Length > 1) { string getContent = splitedLines[1]; int qpos = getContent.IndexOf('?'); if (qpos > -1) { Url = getContent.Substring(0, qpos); string[] paramsParts = getContent.Substring(qpos + 1).Split('&'); int paramLength = paramsParts.Length; var reqParams = new WebRequestParameter[paramLength]; for (int p = 0; p < paramLength; ++p) { string p_piece = paramsParts[p]; int eq_pos = p_piece.IndexOf('='); if (eq_pos > -1) { reqParams[p] = new WebRequestParameter(p_piece.Substring(0, eq_pos), p_piece.Substring(eq_pos + 1)); } else { reqParams[p] = new WebRequestParameter(p_piece, ""); } } ReqParameters = reqParams; } else { Url = getContent; } } HttpMethod = httpMethod; return; } } //-------------------------------------------------------------- //sep key-value int pos = line.IndexOf(':'); if (pos > -1) { string key = line.Substring(0, pos); string value = line.Substring(pos + 1); AddHeaderInfo(key.Trim(), value.Trim()); } else { } }