Fatti: A. Nel corso del 2002 il Consiglio di Stato ticinese ha affidato alla ditta A._ SA due mandati di consulenza nell'ambito della sicurezza: uno per l'elaborazione del bando di concorso di progettazione del nuovo comando della Polizia cantonale a X._; l'altro per l'integrazione in questa struttura della nuova centrale comune di allarme. I rapporti contrattuali sono stati contraddistinti da innumerevoli chiarimenti e riunioni. Il contratto è stato firmato il 15 dicembre 2004. La controversia trae origine dalla fattura intitolata "onorario per piattaforma informatica" di fr. 402'421.30 (fr. 373'997.50 di onorario più fr. 28'423.80 di IVA) emessa il 2 marzo 2005 dalla A._ SA. La fattura non è stata pagata poiché i rappresentanti dello Stato obiettavano che i mandati di consulenza non includessero prestazioni concernenti la piattaforma informatica. B. Il 20 agosto 2008 A._, cessionario del credito della società omonima, ha avviato la causa civile davanti al Pretore del distretto di Bellinzona chiedendo che lo Stato del Cantone Ticino fosse condannato a pagargli fr. 402'421.30 e che fosse rigettata definitivamente per quell'importo l'opposizione al precetto esecutivo n. 555415 dell'Ufficio di esecuzione e fallimenti di Bellinzona. Lo Stato si è opposto totalmente all'azione. Il Pretore l'ha respinta con sentenza del 20 agosto 2012. Il successivo appello di A._ è stato a sua volta respinto, nella misura in cui era ricevibile, il 15 luglio 2014 dalla II Camera civile del Tribunale di appello ticinese. C. A._ insorge davanti al Tribunale federale con ricorso in materia civile del 12 settembre 2014. Chiede che la sentenza d'appello sia annullata e che la causa sia rinviata alla Corte cantonale per nuovo giudizio nel senso dei considerandi. Lo Stato propone che il ricorso, per quanto ammissibile, sia respinto. L'autorità inferiore non ha preso posizione.