2011-11-05 15 views
5

Sto usando C# ASP.NET 4. Per quanto posso dire, l'oggetto HttpWebRequest non utilizza il formato definito da RFC2616 per l'intestazione Data. C'è un modo per dire a una classe DateTime come voglio che la rappresentazione della stringa sia formattata, o c'è un modo per impostare l'intestazione Data su una stringa? Quello che sto vedendo è: "11/5/2011 1:55:15 PM". La stringa di formato DateTime corretta per le richieste HTTP è: @ "ddd, dd MMM yyyy HH: mm: ss G \ MT".HttpWebRequest Date Header Format

Ho provato questo, Ha gettato ed errore.

Request.Headers.Set("Date", DateTime.UtcNow.ToString("ddd, dd MMM yyyy HH:mm:ss G\\MT")); 

Aggiornamento: Doh! Silly me. Stavo usando l'oggetto Date e ho anche provato a forzare la stringa che volevo. Per fortuna questo mi ha portato a provare qualcos'altro.

Request.Headers.Get("Date") 

Lascerò questa domanda per coloro che potrebbero imbattersi in questo sciocco problema che ho fatto. Capacità di pensiero critico ... mi sento una droga. >: |

+0

See https://connect.microsoft.com/VisualStudio/feedback/details/475082/http-date-request-header-is-not-sent-by-httpwebrequest –

+1

Lo so, ma ho l'impressione che si applichi a .NET <4. Posso impostare manualmente l'intestazione Data su DateTime.UtcNow in .NET 4. Inoltre, nel caso qualcuno si stia chiedendo come sono arrivato a stressare così molto sull'intestazione Date, è perché sto lavorando con AWS e parte dell'autorizzazione comporta l'uso dell'intestazione Date. – Vreenak

risposta

0

Utilizzare questo invece per ottenere la rappresentazione della stringa.

Request.Headers.Get("Date")