Добрый день друзья.Мне нужно сделать http сообщение на sharepoint MOSS 2007 mysharepoint / somepage.aspx вне сервера sharepoint.Я был успешным по запросу HTTP GET.ИТ-отдел возвращает правильное содержимое страницы aspx sharepoint и т. Д. Таким образом, я получаю данные из GET-запроса, такие как скрытые поля, которые необходимо использовать в POST-запросе, или запрос просто не будет проверяться с ошибкой 401 (__EVENTTARGET, __VIEWSTATE и т. Д.). Теперь яиспользование стандартного HTTP POST, создание значений моей базовой строки urlEncode и фактическая отправка.Sharepoint не возвращает мне ни одной ошибки, он просто возвращает ту же страницу, что и ответ на мой запрос POST.
enter code here
с использованием System;using System.Collections.Generic;используя System.Text;используя System.Net;использование System.Web;
использование System.IO;
использование System.Collections;используя System.Configuration;используя System.Data;using System.Linq;
пространство имен submit_post_test {class Program {static void Main (string [] args) {
WebRequest req1 = WebRequest.Create("http://XXXXXXXXX/Pages/DocumentSearch.aspx");
req1.Method = "GET";
req1.Credentials = System.Net.CredentialCache.DefaultCredentials;
//req1.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested;
WebResponse res1 = req1.GetResponse();
StreamReader sr1 = new StreamReader(res1.GetResponseStream());
string returnvalue1 = sr1.ReadToEnd();
string MSO_PageHashCode = "";
MSO_PageHashCode = Extract(returnvalue1, "MSO_PageHashCode");
string MSOWebPartPage_PostbackSource = "";
string MSOTlPn_SelectedWpId = "";
string MSOTlPn_View = "0";
string MSOTlPn_ShowSettings = "false";
string MSOSPWebPartManager_StartWebPartEditingName = "false";
string MSOGallery_SelectedLibrary = "";
string MSOGallery_FilterString = "";
string MSOTlPn_Button = "none";
string __EVENTTARGET = "";
string __EVENTARGUMENT = "";
string MSOSPWebPartManager_DisplayModeName = "Browse";
string MSOWebPartPage_Shared = "";
string MSOLayout_LayoutChanges = "";
string MSOLayout_InDesignMode = "";
string MSOSPWebPartManager_OldDisplayModeName = "Browse";
string __EVENTVALIDATION = "";
__EVENTVALIDATION = Extract(returnvalue1, "__EVENTVALIDATION");
string __VIEWSTATE = "";
__VIEWSTATE = Extract(returnvalue1, "__VIEWSTATE");
string __REQUESTDIGEST = "";
__REQUESTDIGEST = Extract(returnvalue1, "__REQUESTDIGEST");
string ctl00_PlaceHolderSearchArea_ctl01_ctl00 = "http://XXXXXXX/ProceduresManual"; //ctl00$PlaceHolderSearchArea$ctl01$ctl00
//ctl00_PlaceHolderSearchArea_ctl01_ctl00 = Extract(returnvalue1, "ctl00_PlaceHolderSearchArea_ctl01_ctl00");
string ctl00_PlaceHolderSearchArea_ctl01_SBScopesDDL = "";
// string ctl00_PlaceHolderSearchArea_ctl01_S3031AEBB_InputKeywords = ""; //ctl00$PlaceHolderSearchArea$ctl01$S3031AEBB_InputKeywords
string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxTitle = ""; //a ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$tbxTitle
string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxDocNo = ""; //ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$tbxDocNo
string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlDepartment = "B101000000000";//B101000000000 //ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$ddlDepartment
string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlActivity = ""; //ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$ddlActivity
string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxValidDateFrom_tbxValidDateFromDate = "";//ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$tbxValidDateFrom$tbxValidDateFromDate
string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxValidDateTo_tbxValidDateToDate = ""; //ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$tbxValidDateTo$tbxValidDateToDate
string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlType = "";//ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$ddlType
string ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_filterButton = "Filter";//ctl00$m$g_6c27032b_676b_4931_81ae_4dfc09447061$filterButton
string ctl00_m_providerWebpart_xmlString = "";//ctl00$m$providerWebpart$xmlString
string ctl00_m_providerWebpart_methodName = "getDocumentsByQuery"; //ctl00$m$providerWebpart$methodName
string __spDummyText1 = "";
string __spDummyText2 = "";
StringBuilder build = new StringBuilder();
build.Append("MSO_PageHashCode=");
build.Append(MSO_PageHashCode);
build.Append("&MSOWebPartPage_PostbackSource=");
build.Append(MSOWebPartPage_PostbackSource);
build.Append("&MSOTlPn_SelectedWpId=");
build.Append(MSOTlPn_SelectedWpId);
build.Append("&MSOTlPn_View=");
build.Append(MSOTlPn_View);
build.Append("&MSOTlPn_ShowSettings=");
build.Append(MSOTlPn_ShowSettings);
build.Append("&MSOGallery_SelectedLibrary=");
build.Append(MSOGallery_SelectedLibrary);
build.Append("&MSOGallery_FilterString=");
build.Append(MSOGallery_FilterString);
build.Append("&MSOTlPn_Button=");
build.Append(MSOTlPn_Button);
build.Append("&__EVENTTARGET=");
build.Append(__EVENTTARGET);
build.Append("&__EVENTARGUMENT=");
build.Append(__EVENTARGUMENT);
build.Append("&__REQUESTDIGEST=");
build.Append(__REQUESTDIGEST);
build.Append("&MSOSPWebPartManager_DisplayModeName=");
build.Append(MSOSPWebPartManager_DisplayModeName);
build.Append("&MSOWebPartPage_Shared=");
build.Append(MSOWebPartPage_Shared);
build.Append("&MSOLayout_LayoutChanges=");
build.Append(MSOLayout_LayoutChanges);
build.Append("&MSOLayout_InDesignMode=");
build.Append(MSOLayout_InDesignMode);
build.Append("&MSOSPWebPartManager_OldDisplayModeName=");
build.Append(MSOSPWebPartManager_OldDisplayModeName);
build.Append("&MSOSPWebPartManager_StartWebPartEditingName=");
build.Append(MSOSPWebPartManager_StartWebPartEditingName);
build.Append("&__VIEWSTATE=");
build.Append(__VIEWSTATE);
build.Append("&__EVENTVALIDATION=");
build.Append(__EVENTVALIDATION);
build.Append("&ctl00%24PlaceHolderSearchArea%24ctl01%24ctl00=");
build.Append(ctl00_PlaceHolderSearchArea_ctl01_ctl00);
build.Append("&ctl00%24PlaceHolderSearchArea%24ctl01%24SBScopesDDL=");
build.Append(ctl00_PlaceHolderSearchArea_ctl01_SBScopesDDL);
//build.Append("&ctl00$PlaceHolderSearchArea$ctl01$S3031AEBB_InputKeywords=");
//build.Append(ctl00_PlaceHolderSearchArea_ctl01_S3031AEBB_InputKeywords);
build.Append("&ctl00%24PlaceHolderSearchArea%24ctl01%24S3031AEBB_InputKeywords=");
build.Append("");
build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24tbxTitle=");
build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxTitle);
build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24tbxDocNo=");
build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxDocNo);
build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24ddlDepartment=");
build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlDepartment);
build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24ddlActivity=");
build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlActivity);
build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24tbxValidDateFrom%24tbxValidDateFromDate=");
build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxValidDateFrom_tbxValidDateFromDate);
build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24tbxValidDateTo%24tbxValidDateToDate=");
build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_tbxValidDateTo_tbxValidDateToDate);
build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24ddlType=");
build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_ddlType);
build.Append("&ctl00%24m%24g_6c27032b_676b_4931_81ae_4dfc09447061%24filterButton=");
build.Append(ctl00_m_g_6c27032b_676b_4931_81ae_4dfc09447061_filterButton);
build.Append("&ctl00%24m%24providerWebpart%24xmlString=");
// build.Append(HttpUtility.UrlEncode("<query id = \"OneParamInOutWpart\" parseFiles=\"1\"><filter><q tid=\"b-q\"><o>1</o><q tid=\"w-q\"><t tid=\"t\"><n>fTitle_LT</n><v tid=\"t-s\">*a*</v></t></q></q></filter></query>"));
build.Append(ctl00_m_providerWebpart_xmlString);
build.Append("&ctl00%24m%24providerWebpart%24methodName=");
build.Append(ctl00_m_providerWebpart_methodName);
build.Append("&__spDummyText1=");
build.Append(__spDummyText1);
build.Append("&__spDummyText2=");
build.Append(__spDummyText2);
string POSTDATA = build.ToString();
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://XXXXXXXX/Pages/DocumentSearch.aspx");
byte[] send = Encoding.UTF8.GetBytes(POSTDATA);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
//req.ContentType = "text/html";
req.ContentLength = send.Length;
req.CookieContainer = new CookieContainer(); // enable cookies
req.Credentials = System.Net.CredentialCache.DefaultCredentials;
// req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested;
Stream sout = req.GetRequestStream();
sout.Write(send, 0, send.Length);
sout.Flush();
sout.Close();
WebResponse res = req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string returnvalue = sr.ReadToEnd();
}
public static string Extract(string BaseString, string ExtractionName)
{
string returnvalue = "";
if (BaseString.IndexOf(ExtractionName) != -1) // found line
{
int startIndex = BaseString.LastIndexOf(ExtractionName) + ExtractionName.Length +9;
int endIndex = BaseString.IndexOf("\"", startIndex);
int count = endIndex - startIndex;
returnvalue = BaseString.Substring(startIndex, count);
}
return HttpUtility.UrlEncode(returnvalue);
}
}
}
, как вы можете видеть, у меня естьнекоторые значения POST жестко запрограммированы, но я заверяю вас, что они правильные (полученные из формы отправки пакета или веб-браузера и отслеживания с помощью fidler), если я попытаюсь добавить неправильные значения, sharepoint вернет сообщение об ошибке сразу.
Таким образом, код как есть, после того, как сообщение просто возвращает ту же старую страницу, а поиск фактически не выполняется, я могу сказать, что потому что фактический поиск занимает несколько секунд.(вот о чем эта форма, ищите записи в архивной БД).